java的選擇排序學習

2021-07-25 15:51:49 字數 2202 閱讀 4110

實現**:

public

class

selection

;

system

.out

.println

("排序之前:"

);

for(

inti =0

;i length;i

++)

//            //簡單的選擇排序

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

//                }

//                a[n] = a[i];

//                a[i] = min;

//

//            }

//            system.out.println();

//            system.out.println("排序之後:");

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

intn =a

.length

;

for(

inti =0

;i i++)

exch(a

,i,min

);

}

system

.out

.println

();

system

.out

.println

("排序之後:"

);

for(

inti =0

;i length;i

++)

}

@suppresswarnings

()

private

static

boolean less

(comparablev,

comparable

m)

@suppresswarnings

()

private

static

void

exch

(comparable

a,inti

,int

j)

}

排序之前:

49

3865

9776

1327

4978

3412641

8

排序之後:

1812

1327

3438

4949

6465

7678

97

演算法分析:

對於長度為n的陣列,選擇排序需要大約n^2/2次比較和n次交換。

特點:執行時間和輸入沒有關係。(對於乙個有序的陣列或主鍵全部相等的陣列或元素隨機排列的陣列所用的排序時間一樣長)。

資料移動是最少的。交換次數和陣列的大小是線性關係。

簡單選擇排序是不穩定的排序。

時間複雜度:t(n)=o(n2)。

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

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

java之選擇排序的簡單學習

選擇排序 以下標為0的開始,與後面的資料一一比較,遇到較小的資料,則進行數值位置交換,外迴圈一輪結束,最小的數值已在最前面。如下 public static void selectionsort int array system.out.println arrays.tostring array 選...

Java 選擇排序

public static void selectsort int a int n a.length int minindex 0 從無序區中選乙個最小的數放在有序區的最後,初始時認為整個陣列都是無序的,選乙個最小的數放到第一位 for int i 0 i 直接選擇排序和插入排序類似,都將資料分為有...