對數組A[n]中的數據進行簡單選擇排序,按照從大到小排列,算法思想如下:
如果數組中不多於一個數據,不用排序。
否則:
一趟簡單選擇排序讓A[0]中存儲最大的數,把剩餘的數看成一個數組,並進行簡單選擇排序。
代碼如下:
#include <stdio.h>
void printArray(int *A,int n)
{
if(n==0)
{
return;
}
printf("%d ",*A);
printArray(A+1,n-1);
}
void ssSort(int *A,int n)
{//簡單選擇排序
if(n<=1)
{
return;
}
int i,t;
for(i=1;i<n;i++)
{//一趟簡單選擇排序
if(A[i]>A[0])
{
t=A[i];A[i]=A[0];A[0]=t;
}
}
ssSort(A+1,n-1);//對後n-1個簡單選擇排序
}
int main()
{
int A[]={1,3,5,2,4,6};
ssSort(A,6);
printArray(A,6);
return 0;
}