C语言解决排序问题

排序问题一般思路是:先将第一个数和第二个数比较,如果第二个数比第一个数小,就将两个数进行互换,这样,小的数就排在了前面。然后再将第二个数和第三个数进行比较,如果第二个数比第三个数小,就将两个数进行互换,这样第三个数就是三个数中最大的了。以此规律,将相邻的两个数进行比较,将小的数调至前面。

按照此规律,如果有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;
}

Guess you like

Origin blog.csdn.net/qq_32100603/article/details/109541098