索引排序的意思是,比如 学号1-10的10个同学的考试分数。按照分数的高低,把他们的学号(位置)打印出来。
呵呵,这个还是非常有用的。
#include <stdio.h>
#include <stdlib.h>
int IndexSort(int * pIndex, int * buffer , int bufferlength)
{
float ftemp;
int itemp;
bool swap = false;
for(int j = 0;j < bufferlength;j++)
{
swap = false;
ftemp =(float)buffer[pIndex[j]];
for(int i =j +1; i < bufferlength ; i++)
{
if(ftemp < buffer[pIndex[i]])
{
itemp = i;
ftemp =(float) buffer[pIndex[i]];
swap = true;
}
}
if(swap)
{
int iswap;
iswap = pIndex[itemp];
pIndex[itemp] = pIndex[j] ;
pIndex[j] = iswap;
}
}
return 0;
}
int main()
{
int index[10];
int arr[10];
for(int i=0;i<10;i++)
{
index[i]=i;
arr[i]=random()%100;
}
for(int i=0;i<10;i++)
{
printf("%d \t %d \n",index[i],arr[i]);
}
IndexSort(index,arr,10);
for(int i=0;i<10;i++)
{
printf("%d \t %d \n",index[i],arr[i]);
}
exit(0) ;
}
新的index里面放的是排序完的结果。呵呵但愿大家能明白。