直接选择排序算法是一种简单直观的排序算法。它首先在未排序序列中找到最小(大)元素,存放到排序序列的其起始位置,然后再从剩余未排序的序列元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素排序完毕。
代码实现如下:
#include <iostream>
using namespace std;
void print(int a[], int n )
{
cout<<n <<":";
for(int j= 0; j<n; j++)
{
cout<<a[j] <<" ";
}
cout<<endl;
}
void InsertSort(int a[], int len)
{
for (int i=0; i<len-1; i++)
{
int k = i;
int key = a[i];
for (int j=i+1; j<len; j++) //找出剩余数据中最小的数
{
if (a[j]< key)
{
k = j;
key = a[j];
}
}
if (k!=i)
swap(a[i], a[k]);
}
}
int main(){
int a[9] = {3,1,5,7,2,4,9,6,6};
InsertSort(a,9);
print(a,9);
}
排序结果如下:
9:1 2 3 4 5 6 6 7 9
以上的算法是由小到大的排序方法,如果要由大到小排序,只需修改代码:if (a[j]< key) 为 if (a[j] > key) ,其他代码保持不变。