选择排序:是冒泡排序的一种变种,但是它没有冒泡对数据有序性的敏感,但它在排序过程中比较冒泡要少了很多数据交换,因此数据比较混乱的情况下要比冒泡要比快。
// 选择排序
void select_sort(int* arr,size_t len)
{
for(int i=len-1; i>0; i--)
{
int max = i;
for(int j=0; j<i; j++)
{
if(arr[j] > arr[max])
max = j;
}
if(max != i)
swap(arr[max],arr[i]);
}
}
选择排序程序原理:循环方式和冒泡排序类似,选择数组最后一个数做标杆,将前面的数进行遍历如果比标杆大就标记,结束后就将标记数据和标杆进行交换,遍历n次,直至数据有序