閱讀521 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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]);
}


 

最後更新:2017-04-03 05:40:23

  上一篇:go J2EE中在web.xml異常頁麵跳轉
  下一篇:go Apache與Tomcat 區別聯係