排序演算法之選擇排序

2021-09-28 19:53:19 字數 638 閱讀 2055

每次找到最小或最大值放在已排好序的最後一位

public

class

xuanze

}int temp=a[m]

; a[m]

=a[min_index]

; a[min_index]

=temp;

}public

static

void

main

(string[

] args)

; xuanze xuanze=

newxuanze()

;int m=0;

int n=a.length;

while

(m!=n)

for(

int i : a)

}}

穩定性:

舉個例子,序列5 8 5 2 9, 我們知道第一遍選擇第1個元素5會和2交換,

那麼原序列中2個5的相對前後順序就被破壞了,所以選擇排序不是乙個穩定的排序演算法 。

時間複雜度:

總共需要交換n+n-1+n-2+…+1=(n+1)n/2次

所以為o(n2)的複雜度。

空間複雜度:

只需要乙個用來交換的變數,所以是o(1)。

排序演算法 排序演算法之選擇排序

最近在學習排序演算法,就排序演算法中的四大經典排序 氣泡排序 快速排序 選擇排序 插入排序。會出一系列的講解排序演算法的部落格。今天繼快速排序之後整理一下選擇排序。選擇排序,就是從一列未排序的陣列中先選出最小 最大 的數,放在陣列的第一位,第一位原來的數字放在最小的原來的位置,再選出第二小的數,放在...

排序演算法之選擇排序 選擇排序 堆排序

直接選擇排序 如下 下面 是一次迴圈同時挑選出最大和最小數,並將其與左右交換 選擇排序 void selectionsort int a,int len swap a min a left 如果最大數的下標在為left,證明要交換的最大數已經被 換到min小標所表示的位置,只需要將right和min...

排序演算法之選擇排序

選擇排序 在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換,第二趟遍歷剩下的n 1個資料,找出其中最小的數值與第二個元素交換.第n 1趟遍歷剩下的2個資料,找出其中最小的數值與第n 1個元素交換,至此選擇排序完成。平均時間複雜度 o n2 空間複雜度 o 1 用於...