不太清楚原理最好看看:进行直接选择排序的过程【参见动画演示】
直接选择排序代码如下:
#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