//................................选择排序
/*
基本思想:
每一趟在后面n-i个待排序元素中选出排序码最小的元素,作为有序元素序列的第i个元素。
直接选择排序的排序码比较次数与元素的初始排列无关,但是元素的移动次数与元素序列的初始排列有关
直接选择排序是一种不稳定的排序算法;
*/
#if 0
#include<iostream>
using namespace std;
#define N 10
void SelectSort(int a[],int left,int right)
{
for(int i = left;i<right;i++)
{
int k = i;
for(int j = i+1;j<=right;j++)
{
if(a[j]<a[k])
k = j; //循环选出当前最小的元素
}
if(k!=i)
{
swap(a[i],a[k]); //将最小元素放到指定位置
}
}
}
int main()
{
//int a[N];
int a[N] = {10,4,1,8,7,5,3,11,6,12};
int i;
//for(i = 0;i<N;i++)
//cin>>a[i];
SelectSort(a,0,N-1); //选择排序
for(i = 0;i<N;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}
#endif