反序排列就是从大到小的顺序对数组进行排序,反序排列实现起来十分方便,只需对一般排序算法稍加修改即可。
以插入算法为例,按从大到小的反序插入排序算法进行排序。代码如下:
void InsertionSort(int* a,int len)
{
int i,j,t,h;
for(i=1;i<len;i++)
{
t=a[i];//待插入的数据
j=i-1;//准备插入的位置
while(j>=0&&t>a[j])
{
a[j+1]=a[j];//如果序号为j的元素小于变量t,则将序号为j的元素像后移,同时变量j-1;
j--;
}
a[j+1]=t;
printf("第%d步排序结果:",i);
for(h=0;h<len;h++)
{
printf("%d",a[h]);
}
printf("\n");
}
}