1. 程式人生 > >C語言之冒泡排序

C語言之冒泡排序

最大 fine 編程思路 watermark 冒泡 iss style ack return

如果要對含有n個數的序列進行升序排列,冒泡排序算法步驟是:

1、從存放序列的數組中的第一個元素開始到最後一個元素。依次對相鄰兩數進行比較,若前者大後者小,則交換兩數的位置。

2、第1趟結束後,最大數就存放到數組的最後一個元素裏了,然後從第一個元素開始到倒數第二個元素,依次對相鄰兩數進行比較,若前者大後者小,則交換兩數的位置;

3、反復步驟1 n-1趟,每趟比前一趟少比較一次。就可以完畢所求。

例1、隨機產生10個100以內的數,將其用冒泡法按升序排列後輸出。


編程思路:用最後一個數與前一個數比較,若比前一個數小
則交換位置。然後再與前一個數比較,若比前一個數小再交換
位置,知道比前一個數大或者已經在最前面!如此循環8次就能夠排好循序!


#include <stdio.h>
#include <stdlib.h>
#define n 10 
int main(void)
{	
	 int a[n],i,j,t;
	 printf("隨機產生10個100以內的數:\n");
	 for(i=0;i<n;i++)
	 {
	   a[i] = rand()%100;
	   printf("%d\n",a[i]);
	 }
	 printf("輸出:\n");
	  for(j=1;j<=n-1;j++)
	  {     /*n個數處理n-1趟*/
	    for(i=0;i<=n-1-j;i++)
		{    /*每趟比前一趟少比較一次*/
	      if(a[i]>a[i+1]) 
		  { 
		    t=a[i];
		    a[i]=a[i+1];
		    a[i+1]=t; 
		  }
		}
	 }
	for(i=0;i<n;i++)
	{
		printf("%d\n",a[i]);
	}
	return 0 ;
}


執行結果:

技術分享



C語言之冒泡排序