排序演算法(二)選擇排序

2022-03-23 14:48:47 字數 791 閱讀 4645

選擇排序(selection-sort),首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

實現

1

private

static

void selectionsort(int

a) 11}

12 swap(a,minindex,i);//

把找到的最小值換到已排序序列的尾部13}

14long end =system.nanotime();

15 system.out.println((end - start)/1000.0 + "us");16}

1718

private

static

void swap(int a, int j, int

i)

時間複雜度:

最佳情況:t(n) = o(n^2)

最差情況:t(n) = o(n^2)

平均情況:t(n) = o(n^2)

空間複雜度:

占用常數的額外空間,所以空間複雜度為o(1)

穩定性:不穩定

參考:

排序演算法 二 選擇排序

之前給大家分享了排序演算法裡面比較簡單的氣泡排序,今天來分享一下選擇排序的演算法 選擇排序的思想 1.以公升序為例 在一組數中選出最大的數放到第乙個位置,或者選出最小的數放到最後乙個位置,2.在選取剩餘元素的最大數放到第二個位置,或選出剩餘元素中的最小值放到倒數第二哥位置,3.依次往下選取,直到遍歷...

排序演算法 二 選擇排序

演算法實現 selectsort.c include void selectsort int arr,int len if min i for k 0 k演算法思想 保證將要成為有序範圍內的那個位置的值是無序裡的最小值。ex 從陣列選出最小的放在第乙個位置上,在從剩餘陣列選出最小放在第二個位置上,以...

排序演算法(二) 選擇排序

選擇排序是一種簡單的直觀的排序演算法,基本原理如下 對於給定的一組記錄,經過一輪比較後得到最小的記錄,然後將該記錄的位置與第乙個記錄的位置交換 接著對不包括第乙個記錄以外的其他記錄進行第二次比較,得到最小記錄並與第二個位置記錄交換,重複該過程,直到進行比較的記錄只剩下乙個為止 從簡單排序的過程來看,...