fork(1) download
  1. #include <stdio.h>
  2.  
  3. void ordena(int tamanho, const int *a, int *b) {
  4. int *copia = (int *) malloc(tamanho * sizeof(int));
  5. int i;
  6. for (i = 0; i < tamanho; i++) {
  7. copia[i] = a[i];
  8. b[i] = i + 1;
  9. }
  10.  
  11. int achou_inversao;
  12. do {
  13. achou_inversao = 0;
  14. for (i = 0; i < tamanho - 1; i++) {
  15. if (copia[i] > copia[i + 1]) {
  16. int aux = copia[i];
  17. copia[i] = copia[i + 1];
  18. copia[i + 1] = aux;
  19. aux = b[i];
  20. b[i] = b[i + 1];
  21. b[i + 1] = aux;
  22. achou_inversao = 1;
  23. }
  24. }
  25. } while (achou_inversao);
  26. free(copia);
  27. }
  28.  
  29. int main(void) {
  30. int a[] = {3, 6, 1, 8};
  31. int b[] = {0, 0, 0, 0};
  32. ordena(4, a, b);
  33. printf("%d %d %d %d", b[0], b[1], b[2], b[3]);
  34. return 0;
  35. }
  36.  
Success #stdin #stdout 0s 2292KB
stdin
Standard input is empty
stdout
3 1 2 4