本篇博客介绍的是选择排序中的三种排序;简单选择排序,锦标赛排序和堆排序
选择类排序的基本思想:每一趟在n-i+1个记录中选取关键字最小的记录最为有序序列中第i个记录。
一、简单选择排序
简单选择排序的基本思想:每i趟排序时,从第i个记录开始,通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换.
代码:
void SelectionSort2(int arr[],size_t size) //升序,找最小值放到前面
{
for (size_t i = 0; i < size - 1; ++i) //少一次趟数
{
int pos = i; //标记最大或最小值
for (size_t j = i + 1; j < size; ++j)
{
if (arr[pos] > arr[j])
{
pos = j;
}
}
if (i != pos)
std::swap(arr[i],arr[pos]);
}
}
算法分析: