c語言實現冒泡排序

  一:冒泡排序的特徵

   1:內部排序

   2:交換數據實現

   3:時間複雜度爲:O(n*n)

  二:冒泡排序的整體思路(按照升序)

   如數據: 58 5 25 14 8

  第一次循環後:5 25 14 8 58  把最大的數交換到最後

  第二次循環:5 14 8 25 58    把第二大的數交換到倒數第二

  ...............................................

  依次類推 就可得出:5 8 14 25 58 的升序數據

  三:程序設計思路

   1:雙重循環

   2:外重循環  i [0-n]  控制  數據的個數(大循環的次數)

   3:內部循環: j [0-(n-i)] 控制當前參與比較的數(如果:前面數的比後面的數大:交換) 

  四:冒泡排序代碼實現如下:

 


#include <stdio.h>

int main()

{ void outPut();

  outPut();

 }

//輸入 

int *input(){

printf("請輸入5個整形");

int *Array,i;

//開闢數組的大小

Array=malloc(sizeof(int)*5);

    for(i=0;i<5;i++){

scanf("%d",(Array+i));

}

 return Array;

//算法 

int *maoPao_Algorithm(){

    int *inPut();

    int *Array,i,j,temp;

    Array=input();

   for(i=0;i<5;i++){

  for(j=0;j<5-i;j++){

if(Array[j]>Array[j+1]){

temp=Array[j];

Array[j]=Array[j+1];

Array[j+1]=temp;

}

}

 }

 return Array;

}

//輸出 

void outPut(){

  int *maoPao_Algorithm();

  int *Array;

  int i;

  Array=maoPao_Algorithm();

  printf("結果爲:");

  for(i=0;i<5;i++){

  printf("%d",Array[i+1]);

  printf("  ");

}

}

 

 


 

 ps:在算法中陶醉..

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章