C語言之冒泡排序

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

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

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

三、反覆步驟1 n-1趟,每趟比前一趟少比較一次。就能夠完畢所求。ide

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


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


#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 ;
}


執行結果:排序

相關文章
相關標籤/搜索