Advertisement
juanjo12x

Sort_Using_Index

Apr 30th, 2014
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.15 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define NUM 10
  5.  
  6. void initialize_index(int index[], int n){
  7.     int i;
  8.     for (i=0;i<n;i++)
  9.         index[i] = i;
  10. }
  11.  
  12. void pprint(int A[], int n){
  13.     int i;
  14.     for (i=0;i<n;i++){
  15.         printf("%d ", A[i]);
  16.     }
  17.     printf("\n");
  18. }
  19.  
  20.  
  21. void pprint_index(int A[], int index[], int n){
  22.     int i;
  23.     for (i=0;i<n;i++){
  24.         printf("%d ", A[index[i]]);
  25.     }
  26.     printf("\n");
  27. }
  28.  
  29.  
  30. void swap(int* elem1, int* elem2){
  31.     int temp;
  32.     temp = *elem1;
  33.     *elem1 = *elem2;
  34.     *elem2 = temp;
  35. }
  36.  
  37. void sort_using_index(int A[], int index[], int n){
  38.     int i, j;
  39.     for (i=0;i<=n-2;i++){
  40.         for(j=0;j<=n-2-i;j++){
  41.             if (A[index[j+1]] < A[index[j]])
  42.                 swap(&index[j],&index[j+1]);
  43.         }
  44.     }
  45. }
  46.  
  47. int main(int argc, char** argv) {
  48.    
  49.     int A[NUM]={2, 10, 6, 5, 1, 9, 3, 7, 4, 8};
  50.     int index[NUM];
  51.    
  52.     printf("Arreglo original:\n");
  53.     pprint(A,NUM);
  54.    
  55.     initialize_index(index, NUM);
  56.     sort_using_index(A, index, NUM);
  57.    
  58.     printf("Arreglo ordenado:\n");
  59.     pprint_index(A,index, NUM);
  60.    
  61.     return (EXIT_SUCCESS);
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement