氣泡排序 PowerShell版

2021-09-07 02:49:27 字數 1653 閱讀 2294

氣泡排序的過程:

第一輪排序:如果有5個數從大到小排序,第一位數與第二位數進行比較,如果第一位小,則第一位數和第二位數交換位置。之後按照這個邏輯對第二位數與第三位數,第三位數與第四位數,第四位數與第五位數分別進行比較與交換。一共會進行4次比較,交換次數小於等於4。這樣一輪比較下來,最小的數就排在了最後面;

第二輪排序:由於最小的數已經排在了最後面,所以第二輪排序只需要考慮前四位數。對前四位數按照第一輪排序的方法進行排序,將最小的數排到最後,也就是5個數中的倒數第二位;

第三輪排序:排前三位;

第四輪排序:排前兩位。

氣泡排序的思想(思想就是對過程的抽象與總結):

先進行抽象:我們對上面的氣泡排序過程進行抽象,如果有n個數,第一輪會有n-1次比較(交換次數小於等於n-1),之後每輪的比較次數逐次減1,一共進行n-1輪排序。

再進行總結:氣泡排序就是每輪比較選出乙個最小的數放在最後,進行n-1輪比較,將n個數按從大到小進行排列。(也可以是從小到大,這裡按從大到小排序進行舉例)

現在將我們的總結轉換為**的形式(由於powershell中貌似沒有c語言中的結構體,我就用兩個陣列studentname和studentscore來替代了),其中粉色字型為排序部分的關鍵**:

$count = read-host "

enter the amout number of the students

"$studentname = new-object system.collections.arraylist

$studentscore = new-object system.collections.arraylist

for($i=1;$i

-le [int]$count;$i++)

#sort begin.

for($i=1;$i -le $count-1;$i++)

}$i++}#

print the sorted result.

write-host "

below is the sorted result:

"for($i=0;$i

-le$count-1;$i++)

對於粉色字型:

1、外for迴圈代表進行$count-1輪排序;

2、內for迴圈代表從第一輪排序開始,第「$i」輪排序將進行$count-$i次比較。

執行介面如下——

輸入學生數:

輸入學生姓名:

輸入學生分數:

排序結果為:

由於氣泡排序的核心是內外雙層巢狀迴圈,時間複雜度為o(n*n),這是乙個非常高的時間複雜度。

桶排序 PowerShell版

scores 88,13,99,26,62,64,77 score s scope is from 0 100 sortedscore new object system.collections.arraylist for i 0 i le 100 i for i 1 i le scores.cou...

氣泡排序 JAVA版

氣泡排序 演算法思想是每次從陣列末端開始比較相鄰倆元素,把第i小的冒泡到陣列的第i個位置。i從0一直到n 1從而完成排序。當然也可以從陣列開始端開始比較相鄰兩元素,把第i大的冒泡到第n i個位置。i從0一直到n 1從而完成排序。public abstract classsorterextendsco...

氣泡排序(Java版)

public class sort public void display system.out.print 第 i 1 趟排序的結果 display public static void main string args sort sort new sort a system.out.print ...