排序演算法之選擇排序

2021-10-09 18:30:49 字數 801 閱讀 4873

作為排序演算法篇的第二篇內容,在排序演算法上進一步深入,講解更為常用的選擇排序

官話:(更加精準,但是比較難懂)

1、在每一次的遍歷中,都假定第乙個索引處的元素為最小值(此處指從小到大排序),和其他索引處的值依次進行比較,若當前索引處的值大於其他某個索引處的值,則假定其他某個索引處的值為最小值,最後可以找到最小值所在的索引

2、交換第乙個索引處和最小值所在的索引處的值

白話:(更加通俗易懂,但是沒有那麼準確)

一共進行n次遍歷陣列,每一次將尚未判斷的最靠前的元素與後面所有的元素依次進行比較,找到最小的乙個,將這個值與你判斷的數進行位置交換,以此保證每一次找到的都是尚未準確判定位置的元素中的最小值,即每一次遍歷精確確定乙個元素的位置,從小到大依次進行排序,最終形成從小到大排列的有序陣列

很明顯的使用了雙層迴圈進行遍歷,時間複雜度以大o記法記為o(n^2)

#include

using

namespace std;

intmain()

;int min_index =0;

int temp;

for(

int i =

0; i <

9; i++)}

temp = sample[i]

; sample[i]

= sample[min_index]

; sample[min_index]

= temp;

}for

(int i =

0; i <

10; i++

)}

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

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

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

直接選擇排序 如下 下面 是一次迴圈同時挑選出最大和最小數,並將其與左右交換 選擇排序 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 用於...