思想:在数组中找到最小(最大)的放在前面,所以时间复杂度为O(n^2)。
代码:
/**
* name:选择排序
* time:15/8/15 14:40
* environment: ubuntu 14.04, sublime text 3
*/
#include <iostream>
#include <algorithm>
using namespace std;
/*
* 打印数组
*/
void printArray(int array[],int length)
{
for (int i = 0; i < length; ++i)
{
cout << array[i] << endl;
}
}
/*
* 核心算法
*/
void selectSort(int *array,int length)
{
for (int i = 0; i < length; ++i)
{
for (int j = i+1; j < length; ++j)
{
if(array[j] < array[i])
{
swap(array[i],array[j]);
}
}
}
}
int main()
{
int array[10] = {8,4,1,3,2,5,7,6,9,0};
selectSort(array,10);
printArray(array,10);
return 0;
}