选择排序也是一个重要的排序算法,其算法思想是根据选定一个比最大的数大或者比最小的数小的数放到其前面或者后面,下面用文字描述一下选择排序的算法(下面算法是对一组数字进行升序):
枚举每一个数字
先选定最小值,记下位置;
再枚举最小值后的每个值,选出比最小值还小的数,记下位置;
把最小值的值赋在新的最小值的位置;
再把新的最小值赋给最小值的原位置;
翻译成代码如下:
# include<iostream> using namespace std; int main() { int a[10] = { 2,45,3,41,2,34,12,24,31,24 }; for (int i = 0; i < 10; i++) { int max = a[i], max_id = i; for (int j = i + 1; j < 10; j++) if (a[j] > max) { max = a[j]; max_id = j; } a[max_id] = a[i]; a[i] = max; } int c=0; while (c < 10) { cout << a[c]<<" "; if(c==9) cout<<endl; c++; } return 0; }
运行结果: