一:冒泡排序的特徵 |
1:內部排序算法
2:交換數據實現數組
3:時間複雜度爲:O(n*n)ide
二:冒泡排序的總體思路(按照升序) |
如數據: 58 5 25 14 8spa
第一次循環後:5 25 14 8 58 把最大的數交換到最後設計
第二次循環:5 14 8 25 58 把第二大的數交換到倒數第二排序
...............................................ci
依次類推 就可得出:5 8 14 25 58 的升序數據input
三:程序設計思路 |
1:雙重循環it
2:外重循環 i [0-n] 控制 數據的個數(大循環的次數)io
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:在算法中陶醉..