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

2021-07-13 20:40:19 字數 704 閱讀 5148

選擇排序---簡單選擇排序

1、基本思想:每一趟排序(第i趟)從剩下的元素中(n-i個元素中)選擇最小的元素作為有序序列的第i個元素

2、選擇排序和氣泡排序的區別

氣泡排序是 兩兩比較 逐個交換,最小或者最大的元素是逐個上公升或下降的;

選擇排序是 兩兩比較找到最大或最小元素  直接交換到指定位置

最小或最大元素不是逐個兩兩交換的,是直接交換;

記錄每一趟排序最大或者最小元素的索引號index,找到最元素後,直接交換swap(l[i], l[index])

3、選擇排序  

時間複雜度o(n2)o(n2) ;空間複雜度o(1)  ;

不穩定的

4、簡單選擇排序是不穩定的!!(一般只有兩兩比較並交換的排序穩定,簡單選擇是直接交換最值元素不穩定)

例如:排序前 :2,4*,4,3 ;排序後:2,3,4,4*

#include using namespace std;

void selectsort(int *l,int n)

selectsort(l,n);

cout<<"排序後資料:"<

五種排序演算法 選擇排序

選擇排序 selection sort 是一種簡單直觀的排序演算法。其基本思想是 首先在未排序的數列中查詢到最小或最大元素,然後將其存放到數列到起始位置 接著,再從剩餘未排序的元素中繼續尋找最小或最大的元素,放到以排序序列的末尾。依此類推,直到所有元素排序完畢。以數列為例,演示其選擇排序過程如下圖所...

排序演算法(五) 簡單選擇排序

當讀者聽到這個名字 簡單選擇排序,是不是就覺得很簡單呢?其實,簡單選擇排序思想也比較簡單,比上一節的快速排序可能更好理解。基本思想 選擇排序的主要操作是選擇,其主要思想是 每趟排序在當前待排序序列中選出關鍵碼最小的記錄,新增到有序序列中。第i 趟在n i 1 i 1,2,n 1 個記錄中選取關鍵碼最...

排序演算法(五) 簡單選擇排序

一 什麼是選擇類排序?顧名思義,選擇類排序的核心就是 選擇 為什麼選擇呢?怎麼樣選擇呢?選擇類排序的基本思路就是 在待排序序列中選擇乙個最小 最大 的元素出來,並將之放到合適的位置上,最終將待排序序列變成乙個有序的序列。二 有哪些選擇類的排序演算法?根據選擇元素的方式不同,我們討論兩種選擇類排序演算...