資料結構 排序(選擇排序)

2021-09-08 22:35:19 字數 1382 閱讀 2252

//

排序--選擇排序法

#include#include

#include

#include

/*選擇排序(selection sort)是一種簡單直觀的排序演算法。

它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的乙個元素,

存放在序列的起始位置,直到全部待排序的資料元素排完。

選擇排序是不穩定的排序方法(比如序列[5, 5, 3]第一次就將第乙個[5]與[3]交換,導致第乙個5挪動到第二個5後面)。

選擇排序 建立乙個有序陣列a,

第一步:找出無序陣列b中的最小的元素 把他放置在有序陣列a的第乙個位置,從無序陣列b中將該元素刪除

第二步:繼續找出無序陣列b中的最小的元素 把他放置在有序陣列a的第二個位置,從無序陣列b中將該元素刪除

選擇排序&氣泡排序&插入排序:

選擇排序每一輪都會遍歷無序陣列一遍,

插入排序每一輪都會遍歷有序陣列一遍,

氣泡排序不存在有序陣列和無序陣列的概念,只是通過相鄰元素的交換 將最值元素放到陣列的一端

*///

選擇法排序

void selectionsort(int * arr, int

num)

int i = 0, j = 0,k=0,temp=0

;

for (i = 0; i < num; i++)

}//交換最小元素和第0個元素的值---一輪迴圈完了再進行交換

if (k !=i)

}}//

列印陣列

void print(int * arr,int

num)

int i = 0

;

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

printf("\n

");}void

test();

//定義時間型別變數

time_t ts;

//生成隨機數種子

srand((unsigned int)time(&ts));

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

//列印陣列

printf("

\n原始資料----\n");

print(arr,

10);

//選擇法排序

printf("

選擇法排序之後的資料\n");

資料結構 排序 選擇排序

選擇排序 所謂選擇排序,就是不斷從剩下的元素中選擇最小的元素放入前面,那麼 前面 我們就從下標為 0 i 0 的第乙個元素開始 此時我們假設下標為 0 的元素是最小的,minindex 0,minindex 就是最小值的索引 相應的剩下的元素則從 i 1 的位置開始,也就是從 1 開始,然後依次與 ...

資料結構 選擇排序

選擇排序是一種比較直觀的排序方法 選擇排序的思想在於 預設公升序排序 在乙個陣列當中,選擇這個陣列當中最小的元素,將這個元素放在第一位,然後尋找第二小的元素,將這個元素放在第二位。以此類推,直到將這個陣列完成排序。這是乙個比較直觀的排序方法 選擇排序 演算法思想 在遍歷陣列的時候 找出陣列當中最小的...

資料結構 選擇排序

選擇排序 紅色表示當前最小值,黃色表示已排序序列,藍色表示當前位置。選擇排序就是按照從左往右,或者從右向左,依次選出乙個最大的或者最小的。例如 從左往右,依次選出最小的,放到最前面,依次選依次放,直到結尾。選擇排序 n len alist for j in range n 1 j產生0到n 2 mi...