选择排序算法原理不再多说,用下图或则代码比较好理解:
#include <iostream>
namespace mySort
{
void selectSort(int * data, int left, int right)
{
for (int i = left; i < right; ++i)
{
int index = i;
for (int j = i + 1; j <= right; ++j)
{
if (data[index] > data[j])
{
index = j;
}
}
//找到右边最小的一个数,然后交换
int temp = data[i]; data[i] = data[index]; data[index] = temp;
}
}
};
int main()
{
int a[] = { 2,1};
mySort::selectSort(a, 0, 1);
return 0;
}
时间复杂度:O(N*N)