@CrazyHenry
2018-03-07T14:56:32.000000Z
字数 725
阅读 1215
dddd数据结构课本
- Author:李英民 | Henry
- E-mail: li
_
yingmin@
outlookdot
com- Home: https://liyingmin.wixsite.com/henry
快速了解我: About Me
转载请保留上述引用内容,谢谢配合!
思路:从待排序列每次找出最小值,与待排序列的第一个交换。
最开始:整个序列都是待排序列,找出最小值1,然后与第一个元素8交换。
第二轮找到最小值2,与6交换。
#include <iostream>
#include <algorithm>
using namespace std;
void selectionSort(int arr[], int n)//n表示传入的数据量
{
if(n <= 0) return;
for(int i = 0; i != n - 1; ++i) //表示只需要n-1轮循环 //外循环只需循环n-1次,最后一个数据不需比较
{
//找到[i,n)区间的最小值索引minIndex
int minIndex = i;
for(int j = i + 1; j != n; ++j)
{
if(arr[j] < arr[minIndex])
minIndex = j;
}
swap(arr[i], arr[minIndex]);//交换arr[i]与arr[minIndex]
}
}
int main() {
int a[10] = {10,9,8,7,6,5,4,3,2,1};
selectionSort(a,10);
for( int i = 0 ; i < 10 ; i ++ )
cout<<a[i]<<ends;//ends表示刷新缓冲区,并附带一个空格" "
cout<<endl;
return 0;
}