c语言排序

冒泡法排序:

排序过程:
(1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上

(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置

(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束
例:

int  main()
{   int a[11],i,j,t;
    printf("Input 10 numbers:\n");
    for(i=1;i<11;i++)
    	scanf("%d",&a[i]);
    printf("\n");
    for(j=1;j<=9;j++)
    	for(i=1;i<=10-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=1;i<11;i++)
	printf("%d ",a[i]);
}


 

简单选择法排序:

排序过程:
(1)首先通过n-1次比较,从n个数中找出最小的, 将它与第一个数交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上

(2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换—第二趟选择排序

(3)重复上述过程,共经过n-1趟排序后,排序结束

int  main()
{   int a[11],i,j,k,x;
    printf("Input 10 numbers:\n");
    for(i=1;i<11;i++)
    	scanf("%d",&a[i]);
    printf("\n");
    for(i=1;i<10;i++)
   {	k=i;
      	for(j=i+1;j<=10;j++)
             if(a[j]<a[k])  			k=j;


 

if(i!=k)
      	{  	
                 x=a[i];
                 a[i]=a[k];
                 a[k]=x;
	}
   }
printf("The sortednumbers:\n");
    for(i=1;i<11;i++)
	printf("%d ",a[i]);
}


 

上一篇:linux中简单的查看文件信息方法 ls


下一篇:所有控制文件损坏的恢复--resetlogs方式