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);
特別提示
個人,如有不對,請多多指教。如有侵犯,請於我聯絡,立馬解決。僅供參考使用,謝謝!
-
win10開始選單工作列點選無反應的解決辦法
點選win10系統的開始選單沒反應,點選工作列中的一些功能圖示也沒反應,可能是explorer程序出錯導致的。遇到這樣的問題我們想到的方法就是重啟電腦,其實除了重啟電腦,還有更快的解決方法,就是重啟Windows資源管理器。接下來我們一起來看看電腦資源管理器怎麼重啟吧。...
-
在Word文件中怎麼樣進行簡繁體轉換?
字型有繁體和簡體之分,而Word文件主要的功能是記錄儲存文字文字,可能由於區域不一樣,有的喜歡用簡體有的喜歡用繁體,為了方便檢視,就需要用到簡繁體的相互轉換了。操作方法(01)方法一:比較常用的,就是用Word文件自帶的簡繁體轉換功能,找到審閱——簡轉繁——便可將選擇的...
-
百度地圖檢視座標
操作方法(01)首先,電腦開啟搜狗瀏覽器,進入百度官網。(02)在上邊我們點選百度地圖的按鈕。(03)進入地圖上,可以看到當前自己所在城市。(04)點選地圖下方的“地圖開發平臺”按鈕。(05)在地圖開放平臺頁面,點選:開發文件——座標拾取器。(06)然後在地圖中,隨意點選一個位置,就可以查...
-
如何將CorelDraw檔案轉為jpg圖片
CorelDraw儲存的原始檔是CDR格式,將檔案轉為jpg格式的圖片。操作方法(01)準備好CorelDraw檔案(02)然後開啟CorelDraw軟體進入介面,選擇選單欄中的-檔案-開啟,(03)找到準備好的cdr檔案,將檔案置入到文件中(04)當匯出時,點選選單欄中的-檔案-匯出(05)在儲存型別中找到jpg格式,點...