簡單的氣泡排序法

2021-08-14 20:26:19 字數 1243 閱讀 4942

int main()

; int length = 9;

for(int i=0;iw[j])

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

cout << w[i] << " ";

return 0;

}

此種方法,每次排序,都可能將較小的數排序到後邊去,造成重複操作。使用從後往前的比較,比較j和j+1不變動後邊的數,迴圈一次,就講小的數排在最前邊

int main()

; int length = 9;

for (int i = 0; i < length - 1; i++)

for (int j = length-2; j >= i; j--)

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

cout << w[i] << " ";

return 0;

}

還有一種情況,即當待排序的數序列為的時候,排序一次就能夠得到得到結果。故增加乙個標誌位,當第二次查詢,發現沒有交換的時候,即後續的數,已經是正確的順序,所以結束迴圈。有了標誌位,對於已經排序好的數,確定是否排序成功,時間複雜度是(n-1)

int main()

;//數的此種序列是最壞情況

double w[9] = ;

int length = 9;

bool flag=true;

int ans = 0;

for (int i = 0; (i < length - 1) && flag; i++)

}}

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

cout << w[i] << " ";

cout 《簡單選擇排序,每次排序之前,從後邊的數中選擇出最小的數,然後與最前邊交換。此方法,由於每次選擇了最小的書,所以極大的減少了交換次數。

int main()

; //double w[9] = ;

int length = 9;

int min;

for (int i = 0; iw[j])

min = j;

} if (min != i)

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

cout << w[i] << " ";

return 0;

}

氣泡排序 氣泡排序法

冒泡法是一種簡單的排序方法,它的實現非常簡單。首先對n個專案進行掃瞄,比較相領兩個專案的大小,若發現違背大小次序則進行互換,由此可以使n個專案中的最大者換到最後。然後對剩下的未排序好的專案再進行掃瞄,使它們的最大者換到表的最後。以此類推,直到將表全部排序好為止。這種排序方法,每遍掃瞄以後,都縮短了待...

氣泡排序法及簡單優化

鞏固自己學習,方便新手,把自己學習的寫出來,有錯誤的敬請指出。氣泡排序法我理解的三點 外迴圈 迴圈變數i,可以理解為對i位置排序。內迴圈 針對i位置,通過內迴圈,把大的數放在i位置。變數change 如果內迴圈不把change置為1說明排序已經結束。具體 如下 有注釋 include int mai...

排序 氣泡排序法

氣泡排序法,是最簡單的一種排序方法,從第乙個位置開始與相鄰位置比較,判斷是否需要交換位子。第一趟從第乙個位置開始,直到最後乙個位置,a n 1 確定最大 以公升序為例子 的數放在最後一位,a n 1 第二趟,繼續從第乙個位置開始,倒數第二位,a n 2 確定倒數第二大的數在倒數第二位a n 2 演算...