基本演算法排序

2021-10-08 03:27:35 字數 1350 閱讀 2096

基本排序演算法:選擇排序、氣泡排序、插入排序

高階選擇排序:快速排序、歸併排序

選擇排序的邏輯:

外層迴圈從首位向後,來控制要確定的位置;

內層迴圈從外層迴圈的下一位位置開始,往後遍歷;

外層迴圈的位置和內層迴圈位置的值進行迴圈比較;

內層u想你換比較完-輪,可以找到乙個最值;

將該最值與外層迴圈的值交換。

案例: public class test0 ;

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

}a[temp] = a[i];

a[i] = min;

}system.out.println(arrays.tostring(a));

} }

氣泡排序邏輯:

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

用二重迴圈實現氣泡排序

用二重迴圈將5個數字公升序排序步驟:

1、5個數字如何存放

陣列,陣列.length = 5

2、控制比較多少輪

外層迴圈,迴圈變數 i

3、控制每輪比較多少次

內層迴圈,迴圈變數 j

4、交換資料

氣泡排序速記口訣(公升序)

* n 個數字來排隊

* 兩兩相比小靠前

* 外層迴圈 n-1

* 內層迴圈 n-1-i

案例:使用氣泡排序對輸入的5名學員成績進行降序排列

public class test1

system.out.print("學員成績按降序排列:");

for (int i = 0; i a[j])}}

system.out.println(arrays.tostring(a));

} }

插入排序的邏輯:

外層迴圈從首位迴圈到末位-1的位置;

內層迴圈與插入的邏輯相同。

案例: public class lx0_1 ;

for (int i = 0; i =0 ; j--) else

}//如果一直沒插入,就插入在首位

if (!isinsert)

}system.out.println(arrays.tostring(a));

} }

基本排序排序演算法

時空複雜度 氣泡排序 時間o n 2 額外空間o 1 插入排序 時間o n 2 額外空間o 1 選擇排序 時間o n 2 額外空間o 1 基數排序 時間o k n k logn max 額外空間o n 臨時儲存 o b 記數,b為基的大小 記數排序 時間o n k 額外空間o k 希爾排序 時間o ...

基本排序排序演算法

時空複雜度 氣泡排序 時間o n 2 額外空間o 1 插入排序 時間o n 2 額外空間o 1 選擇排序 時間o n 2 額外空間o 1 基數排序 時間o k n k logn max 額外空間o n 臨時儲存 o b 記數,b為基的大小 記數排序 時間o n k 額外空間o k 希爾排序 時間o ...

基本排序演算法

將要排序的物件分作兩部份,乙個是已排序的,乙個是未排序的,從後端未排序部份選擇乙個最小值,並放入前端已排序部份的最後乙個,例如 排序前 70 80 31 37 10 1 48 60 33 80 1 80 31 37 10 70 48 60 33 80 選出最小值1 1 10 31 37 80 70 ...