1 選擇排序

2022-10-10 15:24:10 字數 1246 閱讀 8053

選擇排序演算法思想描述:

1、定義變數minindex每次都指向全域性最小值

2、從陣列0位置開始,minindex = 0,把1~n-1位置上的每乙個數依次取出(用下標j指向)和minindex位置的數比較,

如果取出的這個數arr[j]比arr[minindex]的數小,更新minindex = j,否則不變。這一輪結束,minindex找到了整個陣列[0 ~ n-1]

位置上的最小值,和arr[0]位置的數交換。這一步定好0位置的數。

3、從陣列1位置開始,minindex = 1,把2~n-1位置上的每乙個數依次取出(用下標j指向)和minindex位置的數比較,

如果取出的這個數arr[j]比arr[minindex]的數小,更新minindex = j,否則不變。這一輪結束,minindex找到了整個陣列[1 ~ n-1]

位置上的最小值,和arr[1]位置的數交換。這一步定好1位置的數。

3、從陣列2位置開始,minindex = 2,把3~n-1位置上的每乙個數依次取出(用下標j指向)和minindex位置的數比較,

如果取出的這個數arr[j]比arr[minindex]的數小,更新minindex = j,否則不變。這一輪結束,minindex找到了整個陣列[1 ~ n-1]

位置上的最小值,和arr[2]位置的數交換。這一步定好2位置的數。

4、重複迴圈步驟,

5、直到,從陣列n-2位置開始,minindex = n-2,把n-1位置上的數取出(用下標j指向)和minindex位置的數比較,

如果取出的這個數arr[j]比arr[minindex]的數小,更新minindex = j,否則不變。這一輪結束,minindex找到了整個陣列[n-2 ~ n-1]

位置上的最小值,和arr[n-2]位置的數交換。這一步定好n-2位置數的同時,陣列只剩最後1個數,自然n-1位置的這個數也排序好了。

1

public

static

void selectionsort(int

arr) 5//

0 ~ n-2 找到最小值,在哪,放到0位置上6//

1 ~ n-2 找到最小值,在哪,放到1 位置上7//

2 ~ n-2 找到最小值,在哪,放到2 位置上

8 // ...

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

14swap(arr, i, minindex);15}

16 }

C 排序 1 選擇排序

排序方法分為以下幾種,我將在接下來的幾篇blog中,介紹每一種。首先是比較簡單的選擇排序中的直接選擇排序。時間按複雜度為o n 2 空間複雜度為o 1 是一種不穩定的排序方法。具體形式如下圖所示 第一次從9,1,4,6,2中選擇最小的,即1,將1與 a 0 9調換位置,確定了第乙個位置的資料元素 第...

Python選擇排序(1)

python 選擇排序 1 直接選擇排序 每次從未排序陣列中找出最小的數 如果該數不是第1個數則將其與第1個數交換 例如 1 從 3,4,1,2 中找出最小的數1,將數1與第1個數3交換,得到 1,4,3,2 2 從 4,3,2 找出最小的數2,將數2與第1個數4交換,得到 2,3,4 希爾排序 d...

Java學習 選擇排序1 直接選擇排序

選擇排序 思想 每趟從待排序的記錄序列中選擇關鍵字最小的記錄放置到已排序表的最前位置,直到全部排完。關鍵問題 在剩餘的待排序記錄序列中找到最小關鍵碼記錄。1.直接選擇排序 1 基本思想 在要排序的一組數中,選出最小的乙個數與第一位置的數交換 然後從第二個位置開始,在剩下的數當中與第二個位置的數交換,...