基本排序方式(一)氣泡排序和選擇排序

2021-10-01 05:51:37 字數 1478 閱讀 3104

**

陣列a=。

外層第一次迴圈:

- 內層第一次迴圈 :34 ,112,57,1,90,123,23

- 內層第二次迴圈 :34,57,112,1,90,123,23

- 內層第三次迴圈:34,57,1,112,90,123,23

......

- 內層最後一次迴圈:34,57,1,90,112,23,123

外層第二次迴圈:

- 內層第一次迴圈:34,57,1,90,112,23,123

- 內層第二次迴圈:34,1,57,90,112,23,123

......

- 內層第最後一次迴圈:34,1,57,90,23,112,123

......

外層最後一次迴圈:

......

- 內層最後一次迴圈:1,23,34,57,90,112,123

package org.wetmo.demo1;

public class demomaopao ;

show(arr);

}public static void show(int a)}}

for (int i = 0; i < a.length; i++)

}}

從頭到尾掃瞄整個陣列,找出陣列中最小的數與陣列中的第乙個元素交換,再從剩下的數中找出最小的與陣列中第二個元素交換,依次進行,直到排序完成。外層迴圈負責遍歷整個陣列,以及將內層迴圈比較得出的最小值與陣列中元素交換,內層迴圈負責當前陣列的最小值。

以此陣列為例a=;

第一次迴圈結束:11,12,23,56,19,100,236,67

第二次迴圈結束:11,12,23,56,19,100,236,67

第三次迴圈結束:11,12,19,56,23,100,236,67

......

最後一次:11,12,19,23,56,67,100,236

思路:我一開始想的是,設定最小值為min=a[i],將每次迴圈找出的最小值賦給min,再將a[i]與min的值交換,後來發現,這種方式是錯誤

的,因為在最後一步,交換值的時候,雖然將最小值已經賦給了陣列的第乙個元素,但是卻把原來陣列的第乙個元素弄丟了,所以後來想

了一下,用陣列的下標解決了這個問題。設定最小值為min=i;迴圈找出最小值的下表賦給min,然後再交換好了。(這些完全是筆者個人

的理解,僅供參考)。

package org.wetmo.demo1;

public class demoxuanze ;

show(arr);

}public static void show(int a)

}int t=a[i];

a[i]=a[min];

a[min]=t;

}for (int i = 0; i < a.length; i++)

}}

排序 選擇 冒泡 快排

簡單介紹三種常見的排序方法 選擇 冒泡 快排。從大到小排列 選擇排序是在所有資料中先選擇第乙個資料作為最大值,依次和後面的每乙個資料比較,如果比最大值大,替換最大值並且記住索引,遍歷結束後,通過索引把最大值和第乙個資料替換。後面的資料依次執行一遍,就可以得到從大到小排列的資料了。如下 4 void ...

排序 氣泡排序和選擇排序

目錄 氣泡排序 氣泡排序原理圖 demo 執行 選擇排序 氣泡排序原理圖 demo 執行 說明 include include using namespace std name 氣泡排序法 number 傳入陣列 length 陣列長度 setw 需要匯入 include ps 這是乙個lib.h的...

選擇排序和氣泡排序

選擇排序和氣泡排序 演算法 蠻力法選擇排序,第一次掃瞄整個陣列,找到最小元素,然後和第乙個元素交換。第二次從第二個元素開始掃瞄陣列,找到剩下的元素中最小的與第二個元素交換位置,直到最後。89 45 68 90 29 3417 17 45 68 902934 89 17 29 68 90 453489...