>>73 バブルソートの交換回数を調べる
#include<stdio.h>
#include<stdlib.h>
#define ARRAY_SIZE 10
typedef struct tag_qsort_data{
 int *ptr;
}qsort_data;
int qsort_data_compare(const void *ptr1, const void *ptr2){
 const qsort_data *a, *b;
 a=ptr1;b=ptr2;
 return *(b->ptr)-*(a->ptr);
}
int main(void){
 qsort_data *qsort_array;
 int a[ARRAY_SIZE];
 int i, n=ARRAY_SIZE, swap_total_2=0;

 for(i=0;i<n;i++) a[i]=rand()%100;

 qsort_array=malloc(sizeof(qsort_data)*n);
 for(i=0;i<n;i++) qsort_array[i].ptr=&a[i];

 qsort(qsort_array, n, sizeof(qsort_array[0]), qsort_data_compare);
 for(i=0;i<n;i++)
  swap_total_2+=abs(qsort_array[i].ptr-&a[i]);
 free(qsort_array);

 printf("bubble sort swap num: %d\n", swap_total_2/2);
 return 0;
}