2 選擇排序

2021-06-23 04:09:21 字數 760 閱讀 6449

【原理】

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

【複雜度和穩定性】

(1)選擇排序時間複雜度

選擇排序的時間複雜度是o(n2)。

假設被排序的數列中有n個數。遍歷一趟的時間複雜度是o(n),需要遍歷n-1。

因此,選擇排序的時間複雜度是o(n2)。

(2)選擇排序穩定性

選擇排序是穩定的演算法,它滿足穩定演算法的定義。

演算法穩定性 -- 假設在數列中存在a[i]=a[j],若在排序之前,a[i]在a[j]前面;並且排序之後,a[i]仍然在a[j]前面。則這個排序演算法是穩定的!

【**】

#includeusing namespace std;

template//模板的使用

void selection_sort(t array,const int size);

int main()

selection_sort(a,sizeof(a)/sizeof(int));//呼叫函式,要注意sizeof(a)/sizeof(int)的意義

for(int j=0;j<10;j++)//輸出陣列

{cout{ int min;//確定最小值的陣列下標

int temp;//中間值

for(int m=0;m

排序 2 選擇排序

工具方法類 package mydatastructrueadndalgorith.three.arrsort 陣列為模板排序演算法中的一些公用的模板方法 建立人 曹雪坤 version 1.0.0 public class example 遍歷陣列 public static void show ...

排序 選擇排序(2)

選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方...

排序2 選擇排序 選擇排序 堆排序

選擇排序,依次找到資料集n n 1 n 2 中比它大 小的最大 最小者,最終達到全部資料有序。1 選擇排序 直接的依次找到資料集合n n 1 n 2.的最大 最小者形成排序,非常好理解。選擇排序可能是和氣泡排序一樣,最直觀能想到的排序方法。顯然選擇排序和氣泡排序一樣,無所謂最好 最壞 平均,選擇排序...