首页 > 代码库 > 简单选择排序
简单选择排序
继续完成大话数据结构里的简单选择排序,简单排序排序的思想是:通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录。书中用的是下标,我感觉有些不好理解,故就更加麻烦的用了一个循环来查找下标元素,尽管这样时间复杂度增大了,但胜在好理解,当前就是想增大自己的代码量,增强自己的编程能力,故先用此方法,等学到后面再补充,代码如下;
#include<iostream>
using namespace std;
int main()
{
int a[] = { 9, 1, 5, 8, 3, 7, 4, 6, 2 };
int min;
for (int i = 0; i < sizeof(a) / sizeof(int); i++)
{
min = a[i];
for (int j = i + 1; j < sizeof(a) / sizeof(a[0]); j++)//经过这个循环能找出最小值,但无法确定最小值的下标
{
if (min > a[j])
{
min = a[j];
}
}
for (int j = i + 1; j < sizeof(a) / sizeof(a[0]); j++)//对找出的最小值的元素,然后进行交换
{
if (a[j] == min)
{
int b;
b = a[i];
a[i] = a[j];
a[j] = b;
}
}
}
for (int i = 0; i < sizeof(a) / sizeof(int); i++)//输出排好序的数组
{
cout << a[i] << "";
}
return 0;
}
简单选择排序