1. 程式人生 > >C語言選擇法對陣列元素進行排序

C語言選擇法對陣列元素進行排序

選擇法排序是C語言中一種簡便的排序方法,其演算法的基本思想很易於理解,下面以對陣列的元素降序排列來談一談:

  1. 首先求出未排序的陣列中的最大的元素,將其放在陣列的a0的位置;
  2. 接著從剩餘的元素中再求出最大的元素,將其放在陣列的a1的位置;
  3. 依此向後推,很容易寫出對應的程式程式碼。
#include<stdio.h> 
#define Co 10
int main(void)
{
	int a[Co];
	int i,j,max,min,row;
	for(i=0;i<Co;i++)
		scanf("%d",&a[i]);
	printf("\n");
	for(i=0;i<Co;i++)
	{	
		max=a[i];row=i;
		for(j=i;j<Co;j++) 
			if(a[j]>max)
				{
					max=a[j];row=j;
				}
		if(max>a[i])
		{
			min=a[i];
			a[i]=max;
			a[row]=min;
		}
	}
	for(i=0;i<Co;i++)
		printf("%d\t",a[i]);
	return 0;
}

 注意:在主函式外部定義了一個常量Co,它代指陣列中的元素個數,這樣當陣列的大小需要改變時就不必費力去改每個迴圈裡面關於陣列元素個數的常量了。

因出入圈子,能力不足,不是會有錯誤,還望有大佬不吝指教,指出錯誤,謝謝。