void x_sort(elementtype a, int n)
從後往前開始遍歷:
比較相鄰的兩個元素,如果第二個元素比第乙個元素小,則進行交換
從開始一對到最後一對,對每一對相鄰元素做2的工作。這步操作完成後,最後的元素應該是最大的元素
重複以上步驟,直到倒數第乙個元素(最後乙個元素不參與上述迴圈)
持續每次對越來越少的元素重複以上的步驟,直到沒有任何一對元素需要比較
void bubble_sort(elementtype a, int n)
}if (flag == 0) // 全程無交換,說明陣列已經有序了,不需要再進行排序了
break;
}}
穩定性:基於a[i] > a[i + 1]
的判斷方式,該氣泡排序是穩定的
氣泡排序可以處理單向鍊錶的排序
從第二個元素遍歷到最後乙個元素:
1. 記錄當前元素為temp
2. 從當前位置向前遍歷,如果前乙個元素大於temp
,則把下個元素後移,直到前乙個個元素小於或等於temp
3. 把temp
置於空出來的位置
void insertion_sort(elementtype a, int n)
}
穩定性:基於a[i - 1] > temp
的判斷方式,該插入排序是穩定的
對於下標對於冒泡、插入排序:i<
j ,如果
a[i] > a[j]
,則稱j>
是一對逆序對(inversion)
對於排序:
排序 簡單排序
氣泡排序 函式名 bubble sort 功能 實現公升序排序 引數 帶排序的陣列,陣列的長度 返回值 為空 描述 時間複雜度為o n 2 輔助空間為o 1 有一種變形的氣泡排序 雞尾酒排序,它是雙向的氣泡排序,時間複雜度也為o n 2 void bubble sort int bubble,int...
排序 簡單排序
一 氣泡排序 源 void bubble sort int array,int size array if flag 0 break 二 插入排序 原理 從第二個元素開始向前比較判斷,如果比前乙個元素小,則前乙個元素往後移動一位,直到第乙個元素或者前面條件不成立,將該元素插入當前位置。源 void ...
09 排序1 排序
09 排序1 排序 25 分 給定n 個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下 include include includeusing namespace std const int cutoff 1000...