只有刻意練習遞歸,才能掌握遞歸-遞歸專題9-遞歸專題-簡單選擇排序

對數組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; 
} 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章