重新编写了一遍选择排序的程序,这次没有分写成各个函数,而是按照线性顺序进行编写。
代码:
#include<iostream> using namespace std; int main() //按照线性顺序编写的选择排序,把十个大小不一的数组按从大到小的顺序排序 { const int N = 10; int i, j, min, temp, a[N]; cout << "please input 10 numbers: " << endl; for (i = 0; i < N; i++) { cin >> a[i]; } for (i = 0; i < N; i++) { cout << a[i] << " "; } cout << endl; for (i = 0; i < N; i++) { min = 0; for (j = 1; j <N-i;j++) //现在第一和第二个元素中找出最小值的位置,让min获取最小值的下标,然后min对应的元素依次和后面元素比较,直至找到所有元素中最小的下标 { if (a[j]<a[min]) { min = j; } } cout << min << " "; temp = a[min]; a[min] = a[N-i-1]; a[N-i-1] = temp; } cout << endl; for (i = 0; i < N; i++) { cout << a[i] << " "; } system("pause"); }