Postado Março 4, 2015 10 anos Olá pessoal, ontem estava resolvendo um exercício sobre escrever um vetor e logo após reescreve-lo em ordem crescente. Bem simples né? Vou colocar o meu em spoiler, caso alguém queira resolver também antes de vê-lo, caso resolva e queira posta-lo, poste-o em spoiler também, obrigado #include <stdio.h> #define TAMANHO_VETOR 4 // Definindo uma constante para o tamanho do vetor. int main(void){ // Declarando as variaveis. int intVetor[TAMANHO_VETOR]; int menor, pos, copy; // Gravando dados no vetor. for(int x = 0; x <= TAMANHO_VETOR; x++) { printf("Escreva o valor do vetor[%d]: ", x + 1); scanf("%d", &intVetor[x]); } // for(int x = 0; x <= TAMANHO_VETOR; x++) { menor = intVetor[x]; pos = x; for(int y = x; y <= TAMANHO_VETOR; y++) { if (intVetor[y] < menor) { menor = intVetor[y]; pos = y; } } copy = intVetor[x]; intVetor[x] = menor; intVetor[pos] = copy; } system("PAUSE"); return 0; } STYLLER OT 2022
Postado Março 9, 2015 10 anos #include <stdio.h> void swap(int* vector, int from, int to) { int aux = vector[from]; vector[from] = vector[to]; vector[to] = aux; } void swift_down(int* vector, int start, int end) { int root = start; int child = root*2 + 1; while (child <= end) { if (child + 1 <= end && vector[child] < vector[child + 1]) { child++; } if (vector[root] < vector[child]) { swap(vector, root, child); root = child; } else { break; } } } void heapify(int* vector, int size) { int start = (size - 2)/2; int end = size - 1; while (start >= 0) { swift_down(vector, start, size - 1); start--; } while (end > 0) { swap(vector, end, 0); end--; swift_down(vector, 0, end); } } int main(int argc, char* argv[]) { int n, i; while (scanf("%d", &n) != EOF) { int vector[n]; for (i = 0; i < n; i++) { scanf("%d", &vector[i]); } heapify(vector, n); for (i = 0; i < n; i++) { printf("%d ", vector[i]); } printf("\n"); } return 0; } heap sort
Postado Março 9, 2015 10 anos Autor @Elwyn, lol, tem muita coisa ai que eu não tenho nem ideia do que faz ... rsrsrs Obrigado por participar STYLLER OT 2022
Postado Março 12, 2015 10 anos O heapsort é relativamente simples se você entender o conceito. A parte difícil mesmo é entender o conceito pra falar a verdade, quando você entende ele o, código faz mais sentido. É bem legal saber vários tipos de algoritimos de sorting, ajuda bastante na hora de diminuir o consumo do código. Se você quiser posso te enviar uns materiais legais sobre isso.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.