南嵌的考题。根据数组单元内的数字排序数组,获得数组(序号)下标的排列顺序。
eg. struct Array{
int weight;
}
struct Array sortme[500] ;
/初始化sortme[500]/
根据weight的大小排序数组的结构体单元。
**/
#include <stdio.h>
int main()
{
int a[5]={4,7,9,2,1};
int s[5]={1,2,3,4,5};
int i, j;
for(j=1;j<5;j++)
{
i=j-1;
int tmp=s[j];
while(i>=0 && a[s[i]] > a[tmp])
{
s[i+1]=s[i];
i--;
}
s[i+1]=tmp;
}
for(i=0;i<5;i++)
{
printf("(%d)%d,",s[i],a[s[i]]);
}
putchar((int)'
');
}
排序用的是插入排序,算法的最坏情况是O(n^2)。