选择排序:
定义:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。
- 先从原始数据(n个)中拿出最小的数据和第一个位置进行交换。
- 再从n-1中拿出最小的数据和第二个位置进行交换。
- 然后不断重复。
原始数据(55,18,9 ,5,32,100)
第一次排序:(5,18,9,55,32,100)
第二次排序:(5,9,18,55,32,100)
第三次排序:(5,9,18,55,32,100)
第四次排序:(5,9,18,32,55,100)
代码:
void Selectsort(int data[], int len) { int min; int i, j; int temp; for (i = 0; i < len - 1; i++) { min = i; for (j = i; j < len; j++) { if (data[min] > data[j]) { min = j; } } //循环结束找到最小值的下标min if (min != i) { temp = data[min]; data[min] = data[i]; data[i] = temp; } } }