劇多
首頁
資訊
體育
娛樂
汽車
投資
財經
軍事
科技
數碼
科學
遊戲
歷史
健康
政治
影視
旅遊
育兒
美食
時尚
房產
農業
社會
文化
教育
技術
美文
情感
故事
家居
職場
自然
闢謠
心理
攝影
漫畫
生活
其它
Club
Tips
熱門話題
搜尋
註冊
登入
首頁
>
Club
>
2021-03-05 02:55
C語言氣泡排序問題!不會寫了?
8
回覆列表
1 # LED景觀亮化專家
氣泡排序的基本思想就是不斷比較相鄰的兩個數,讓較大的元素不斷地往後移。經過一輪比較,就選出最大的數;經過第2輪比較,就選出次大的數,以此類推。
#include<stdio.h>#include<stdlib.h>#define N 8void bubble_sort(int a[],int n);//一般實現void bubble_sort(int a[],int n)//n為陣列a的元素個數{//一定進行N-1輪比較for(int i=0; i<n-1; i++){//每一輪比較前n-1-i個,即已排序好的最後i個不用比較for(int j=0; j<n-1-i; j++){if(a[j] > a[j+1]){int temp = a[j];a[j] = a[j+1];a[j+1]=temp;}}}}//最佳化實現void bubble_sort_better(int a[],int n)//n為陣列a的元素個數{//最多進行N-1輪比較for(int i=0; i<n-1; i++){bool isSorted = true;//每一輪比較前n-1-i個,即已排序好的最後i個不用比較for(int j=0; j<n-1-i; j++){if(a[j] > a[j+1]){isSorted = false;int temp = a[j];a[j] = a[j+1];a[j+1]=temp;}}if(isSorted) break; //如果沒有發生交換,說明陣列已經排序好了}}int main(){int num[N] = {89, 38, 11, 78, 96, 44, 19, 25};bubble_sort(num, N); //或者使用bubble_sort_better(num, N);for(int i=0; i<N; i++)printf("%d ", num[i]);printf("\n");system("pause");return 0;}
供參考
發表回復
相關內容
c語言氣泡排序方法默寫?
c語言實現:使用氣泡排序,從小到大排列,輸出每一趟排序後的結果以及總的比較次數?
∧
中秋節和大豐收的關聯?
∨
空調安裝怎麼排氣和怎麼收氟?
熱門排行
和平精英要是得一個車幣的話怎麼弄才能最好得到?
泡泡瑪特單盒雙盒什麼區別?
女生腿上畫正是什麼意思?
崽崽幼兒園畢業文案怎麼寫?
給孩子們自制小籠包經典文案?
Golf4車速傳感器壞了癥狀?
洗鉑金項鍊用什麼洗最亮?
918事變和77事變的歷史地位?
鐵砧子用什麼固定?
逆水寒手游離線身份怎麼用?
氣泡排序的基本思想就是不斷比較相鄰的兩個數,讓較大的元素不斷地往後移。經過一輪比較,就選出最大的數;經過第2輪比較,就選出次大的數,以此類推。
#include<stdio.h>#include<stdlib.h>#define N 8void bubble_sort(int a[],int n);//一般實現void bubble_sort(int a[],int n)//n為陣列a的元素個數{//一定進行N-1輪比較for(int i=0; i<n-1; i++){//每一輪比較前n-1-i個,即已排序好的最後i個不用比較for(int j=0; j<n-1-i; j++){if(a[j] > a[j+1]){int temp = a[j];a[j] = a[j+1];a[j+1]=temp;}}}}//最佳化實現void bubble_sort_better(int a[],int n)//n為陣列a的元素個數{//最多進行N-1輪比較for(int i=0; i<n-1; i++){bool isSorted = true;//每一輪比較前n-1-i個,即已排序好的最後i個不用比較for(int j=0; j<n-1-i; j++){if(a[j] > a[j+1]){isSorted = false;int temp = a[j];a[j] = a[j+1];a[j+1]=temp;}}if(isSorted) break; //如果沒有發生交換,說明陣列已經排序好了}}int main(){int num[N] = {89, 38, 11, 78, 96, 44, 19, 25};bubble_sort(num, N); //或者使用bubble_sort_better(num, N);for(int i=0; i<N; i++)printf("%d ", num[i]);printf("\n");system("pause");return 0;}供參考