排序 1 選擇排序 C語言實現

2021-06-22 13:04:01 字數 1212 閱讀 8105

選擇排序的基本思想:

選擇排序(selection sort)是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

我的通俗解釋:

①第一遍先在整個序列中尋找到最小值,將其移到首位,序列被分為1,n-1;

②繼續在n-1中尋找最小值,將其移到n-1的首位,也就是整個序列的第二位

③以此類推,反覆操作步驟②,得到結果

選擇排序的主要優點與資料移動有關。如果某個元素位於正確的最終位置上,則它不會被移動。選擇排序每次交換一對元素,它們當中至少有乙個將被移到其最終位置上,因此對n個元素的表進行排序總共進行至多n-1次交換。在所有的完全依靠交換去移動元素的排序方法中,選擇排序屬於非常好的一種。

源**:

// 排序.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include void select_sort()

printf("before sort:\n"); //列印排序前的資料

for (int i = 0; i < 10; i++)

//開始排序

int min = 0; //假定最小值下標的為0

for (int i = 0; i < 10 - 1; i++)

} if (min != i) //如果min == i 則證明當前後半部分的第乙個下標的元素即為最小值,不需要做任何操作,否則交換之

} printf("\nafter sort:\n"); //列印排序後的資料

for (int i = 0; i < 10; i++) }

int _tmain(int argc, _tchar* argv)

執行結果:

before sort:

11 17 4 10 29 4 18 18 22 14

after sort:

4 4 10 11 14 17 18 18 22 29

請按任意鍵繼續. . .

如有錯誤,望不吝指出。

選擇排序 C語言實現

選擇排序是一種簡單直觀的排序演算法,它與氣泡排序很相似,都是比較n 1輪,每輪 n 1 i 次每輪找出乙個最大 最小值。只不過冒泡放最後,選擇排序放最左。本文以從小到大排序為例 與冒泡的比較 冒泡是將相鄰的數逐個進行比較 從小到大為例 只要前面的比後面的大,就互換倆數,直到最後將最大的數 浮到 最末...

選擇排序,C語言實現

下面我們來介紹一下選擇排序。選擇排序的思想是每次都從剩餘的元素中找到最小值,然後把這個最小值放到已經有序的部分元素的後面。這個過程的時間複雜度為o n 一共需要找n個元素,所以總的時間複雜度是o n2 其中,尋找最小值的 如下 int minindex i int min arr i for int...

go語言實現排序 選擇排序

大家都知道我們一般不會用直接選擇排序,因為時間複雜度比較高,相信大家對直接插入排序都不陌生,就是每次確定乙個當前的最小值或者最大值,我也在這個基礎上進行了一點小改進,即每次都確定乙個最大值和最小值 func selectsort nums int,n int int nums min nums fi...