不太清楚原理最好看看:进行直接选择排序的过程【参见动画演示】
直接选择排序代码如下:
#include <iostream>
using namespace std;
void SelectSort(int arr[], int n);
void main()
{
int ar[]={1,4,5,3,7,8,2};
SelectSort(ar,7);
system("pause");
}
void SelectSort(int arr[], int n)
{
/*
三参数:i,min,k,
i,j,k 开始都指向 第一个元素
i: 循环完一次,加1
min:比较移动,指向最小元素
k: 一直循环的变量
*/
int i,j,k;
for (i = 1; i< n; i++)
{
int min = i;
for (j = i+1; j<n; j++)
{
if (arr[j]<arr[min])
{
min = j;
}
if (j != i)
{
swap(arr[i],arr[min]);
}
}
cout<<"*********排序"<< i <<"次的结果为"<<endl;
for (int g = 0; g < n; g++)
{
cout<<arr[g];
cout<<",";
}
cout<<""<<endl;
}
}
直接选择排序(Straight Selection Sort)--学习(五)
原文:http://blog.csdn.net/u010236550/article/details/18303025