冒泡 選擇 插入法排序詳解

2022-05-19 09:27:13 字數 2139 閱讀 9067

冒泡法排序,見名思義,就是像吐泡泡一樣,乙個個泡泡按照應有的順序吐到水面上,直至排序完成。

對陣列中的元素從前到後進行兩兩比較交換(0和1,1和2,2和3,...n-1和n),每次完成這樣的一種操作,根據具體的條件,最大值或最小值已被挪至最後元素,根據n-1次迴圈完成對陣列排序。

//冒泡法排序,本例按照公升序進行排序

void bubblesort(int a, int n)

} }}

輸入陣列資料: 3 6 0 1 4 5 9 7 8 2

第1次: 3 0 1 4 5 6 7 8 2 '9' //第一次迴圈排序已將最大值排至最後位置

第2次: 0 1 3 4 5 6 7 2 '8' 9 //依此類推,直至排序完成

第3次: 0 1 3 4 5 6 2 '7' 8 9

第4次: 0 1 3 4 5 2 '6' 7 8 9

第5次: 0 1 3 4 2 '5' 6 7 8 9

第6次: 0 1 3 2 '4' 5 6 7 8 9

第7次: 0 1 2 '3' 4 5 6 7 8 9 //到此實際排序已完成

第8次: 0 1 '2' 3 4 5 6 7 8 9

第9次: 0 '1' 2 3 4 5 6 7 8 9 //程式執行完畢,排序完成

選擇法排序,即選擇性進行排序,根據特定情況對某個位置資料進行選擇最值。

選擇法排序,即選擇性進行排序,為每個位置選擇最值進行交換插入,即(陣列第1個元素分別和第2、3、... 、n)進行比較,採用打擂台的方式,將最值替換至第1位,再次迴圈即(第2個元素和3、4、.... 、n)比較,插入次值,也是通過n-1次迴圈完成排序。

//選擇法排序

void selectsort(int a, int n)

} }}

輸入陣列資料: 3 6 0 1 4 5 9 7 8 2

第0次: '0' 6 3 1 4 5 9 7 8 2 //第一次迴圈排序已將最小值排至最前位置

第1次: 0 '1' 6 3 4 5 9 7 8 2 //依次類推,選擇性的將最小值放置指定位置

第2次: 0 1 '2' 6 4 5 9 7 8 3

第3次: 0 1 2 '3' 6 5 9 7 8 4

第4次: 0 1 2 3 '4' 6 9 7 8 5

第5次: 0 1 2 3 4 '5' 9 7 8 6

第6次: 0 1 2 3 4 5 '6' 9 8 7

第7次: 0 1 2 3 4 5 6 '7' 9 8

第8次: 0 1 2 3 4 5 6 7 '8' 9 //排序完成

插入法排序,哈哈,這是我在資料結構中新學習的較為簡單的排序方法,即向有序陣列中進行插入,放置正確位置的一種排序方法。

插入法排序,即向有序序列中找到合理位置進行插入資料,從而實現從第乙個元素到最後元素全部插入完成排序的過程。第一次外層迴圈i為1即待插入資料的下標(第二個資料),內層迴圈j從i的位置開始,使之與前邊的資料一一比較,如果小於就交換插入,直至插入到合適的位置,通過n-1次迴圈將全部資料插入有序序列,完成排序。

//插入法排序

void insertionsort(int a, int n)

} }

}

輸入陣列資料: 3 6 0 1 4 5 9 7 8 2

第1次: '3 6' 0 1 4 5 9 7 8 2 //將6插入有序序列(3)中,此時完成插入

第2次: '0 3 6' 1 4 5 9 7 8 2 //將3插入有序序列中(3,6)中,此時完成插入

第3次: '0 1 3 6' 4 5 9 7 8 2 //將1插入有序序列中(0,3,6)中,此時完成插入

第4次: '0 1 3 4 6' 5 9 7 8 2 //將4插入有序序列中(0,1,3,6)中,此時完成插入

第5次: '0 1 3 4 5 6' 9 7 8 2 //依次類推,直至排序完成

第6次: '0 1 3 4 5 6 9' 7 8 2

第7次: '0 1 3 4 5 6 7 9' 8 2

第8次: '0 1 3 4 5 6 7 8 9' 2

第9次: '0 1 2 3 4 5 6 7 8 9'

冒泡法 選擇法 插入法排序

includevoid inputarray int a,int n 輸入陣列元素 void outputarray int a,int n 輸出陣列元素 void sort01 int a,int n 冒泡法排序 void sort02 int a,int n 選擇法排序 void sort03 ...

2020 11 17 陣列排序 插入法 冒泡法

廢話少說,直接上 插入法 includeint main 插入法 初始化陣列 int i,temp,p for i 1 i 7 i 從第二項開始 初始化資料 int i,temp,j,t for j 1 j 5 j 進行幾次冒泡 for i 0 i 4 i printf d a i include ...

插入法排序

static void insertsort int nums 挪位置 for int k i 1 k index k 插入 nums index insert static void main string args console.writeline 排序前的陣列 foreach var n i...