Fork me on GitHub

选择排序

原文地址:https://www.runoob.com/w3cnote/selection-sort.html

ps:转载至此,方便自己日后的学习总结,,

 

 

选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。

1. 算法步骤

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

重复第二步,直到所有元素均排序完毕。

2. 动图演示


代码实现

C 语言实例

 1 C 语言
 2 实例
 3 void swap(int *a,int *b) //交換兩個變數
 4 {
 5     int temp = *a;
 6     *a = *b;
 7     *b = temp;
 8 }
 9 void selection_sort(int arr[], int len)
10 {
11     int i,j;
12 
13         for (i = 0 ; i < len - 1 ; i++)
14     {
15                 int min = i;
16                 for (j = i + 1; j < len; j++)     //走訪未排序的元素
17                         if (arr[j] < arr[min])    //找到目前最小值
18                                 min = j;    //紀錄最小值
19                 swap(&arr[min], &arr[i]);    //做交換
20         }
21 }

 

posted @ 2020-10-13 23:24  小白菜·球  阅读(141)  评论(0)    收藏  举报
1