C語言排序 C語言冒泡排序算法(Bubble Sort)
操作方法
(01)冒泡排序原理:設要排序的數據記錄到一個數組中,把關鍵字較小的看成“較輕”的氣泡,所以就應該上浮。從底部(數組下標較大的一端)開始,反覆的從下向上掃描數組。進行每一遍掃描時,依次比較“相鄰”的兩個數據,如果“較輕”的氣泡在下面,就要進行交換,把它們顛倒過來。(圖片取自互聯網)
(02)具體實現過程:第一步 輸入數據你可以直接將你所需要的數據存入數組,如int a[5] = {84,83,88,87,61};也可以通過循環輸入for(i = 0 ; i< n ;i++){scanf("%d",&a[i]);}來實現數據輸入數組;
(03)具體實現過程:第二步 寫循環冒泡排序是從最低部掃描(數組下標大的一端);所以內部循環應該從數組下標較大的一方開始 for(j = n - 1 ; j > i ; j--)內部循環確定以後,寫外部循環;for(i = 0; i < n ; i++)for(j = n - 1 ; j > i ; j--) // j>i的是掃描第一遍以後,下標最小的一位數,已經變成最大的一位數
(04)具體實現過程:第二步 寫交換if(a[j - 1] < a[j]){temp = a[j - 1];a[j - 1]=a[j];a[j]=temp;}
(05)C語言實現:#include <stdio.h>int main(){int a[5] = {84,83,88,87,61};int i,j;int temp;printf("按從大到小排序!n");int n = 5 ;//數組最大的下標for(i = 0; i < n ; i++)for(j = n - 1 ; j > i ; j--){if(a[j - 1] < a[j]){temp = a[j - 1];a[j - 1]=a[j];a[j]=temp;}}for(i = 0 ; i < n ; i++){printf("%d ",a[i]);}return 0;}
(06)運行程序,成功截圖如下;
(07)氣泡排序的時間複雜度為0(n^2);
特別提示
個人,如有不對,請多多指教。如有侵犯,請於我聯繫,立馬解決。僅供參考使用,謝謝!
-
塞爾達傳説 支線消失的咕咕雞 任務攻略
很多小夥伴可能不瞭解塞爾達咕咕雞任務,非常好奇想要知道,那麼我就來解答一下這個問題吧,具體內容請看下文:塞爾達咕咕雞任務一共7只雞分佈在村莊裏,但是在地圖上並沒有任何的提示,尋找起來頗費一番功夫。操作方法(01)在地圖上找到卡卡利科村,點進去;(02)跟丟雞的老爺爺對...
-
表格excel全空白沒有線條邊框網格線怎麼辦
Excel表格打開時,正常情況下都是有線條邊框網格線的,但如果出現如圖Excel表格全空白沒有線條邊框風格線的時候怎麼辦呢?接下來我就以Excel2010版本為例給大家提供幾個解決方法。操作方法(01)方法一:打開Excel表格,單擊選項,然後再把選項中的前的空格單擊打上即可顯示所...
-
MATLAB使用importdata讀取字符數據文件並繪圖
本文首先使用importdata()讀取(導入)含有字符和數據的文本格式數據文件,然後介紹通過“.”+數據名的方式讀取結構數組中的數據,最後使用plot()繪製折線圖。操作方法(01)第一,首先準備數據,下圖txt數據文件是某年12個月的月收入情況,既包含數字又包含字符。(02)第二,將該數...
-
郵箱快速註冊,不用手機號
如何快速註冊郵箱?如何不用手機號註冊郵箱?僅以TOM郵箱為例。操作方法(01)點擊連接進入TOM郵箱註冊頁面輸入郵箱賬號等信息(02)選擇微信註冊,拿出手機掃一掃即可完成註冊特別提示使用微信掃一掃,不用手機號和驗證碼...