算法原理:
在无序的序列中选择最小的一个,放到已排好序的序列中。
int a[6] = {23, 42, 4, 16, 8, 15};
已排好的序列中没有元素
无序的序列就是原始的输入数组,在数组中查找最小的一个是4,然后与数组中第一个元素交换,做为排好的序列。
数组变为
int a[6] = {4, 42, 23, 16, 8, 15};
然后从42开始,重复上面的步骤,直至最后一个元素
算法时间复杂度 n(n-1)/2, 记为O(n^2)
代码如下:
#include <iostream>
using namespace std;
int main ()
{
int a[6] = {23, 42, 4, 16, 8, 15};
for(int i=0; i< 6; i++)
{
int min = i;
for(int j=i+1; j<6; j++)
{
if(a[j] < a[min])
{
min = j;
}
}
if(min != i)
{
swap(a[min], a[i]);
}
}
for(int i=0; i<6; i++)
{
cout << a[i] << " ";
}
return 0;
}