C語言解決排序問題

向南的小企鵝發表於2020-11-06

排序問題一般思路是:先將第一個數和第二個數比較,如果第二個數比第一個數小,就將兩個數進行互換,這樣,小的數就排在了前面。然後再將第二個數和第三個數進行比較,如果第二個數比第三個數小,就將兩個數進行互換,這樣第三個數就是三個數中最大的了。以此規律,將相鄰的兩個數進行比較,將小的數調至前面。

按照此規律,如果有n個數,則要進行n-1次比較。在第一趟比較中進行n-1次兩兩比較,在第j趟比較中要進行n-j次的兩兩比較。

原始碼如下

#include <stdio.h>

int main()
{
	int a[10];
	int i,j,t;
	printf("input 10 numbers: \n");
	for(i = 0;i < 10;i++)
	scanf("%d",&a[i]);
	printf("\n");
	for(j=0;j<9;j++)
		for(i=0;i<9-j;i++)
			if (a[i]>a[i+1])
				{ t=a[i];a[i]=a[i+1];a[i+1]=t; }
	printf("the sorted numbers:\n");
	for(i=0;i<10;i++)
		printf("%d",a[i]);
	printf("\n");
	return 0;
}

相關文章