题目描述
用选择法对10个整数从小到大排序。
输入格式
输入10个无序的数字
输出格式
排序好的10个整数
样例输入
4 85 3 234 45 345 345 122 30 12
样例输出
3 4 12 30 45 85 122 234 345 345
解题思路
简单的选择排序,使用了C++函数模板,运用泛型编程思想写出一个可以对各种类型数组进行排序的 选择排序函数,提升对C++泛型编程思想的理解,加深印象
解题代码
//用选择法对10个整数从小到大排序。 #includeusing namespace std; template void mySwap(T &a, T &b) { T temp = a; a = b; b = temp; } template // 也可以替换成typename,利用选择排序,进行对数组从大到小的排序 void mySort(T arr[], int len) { for (int i = 0; i < len; i++) { int min = i; //最大数的下标 for (int j = i + 1; j < len; j++) { if (arr[min] > arr[j]) { min = j; } } if (min != i) //如果最大数的下标不是i,交换两者 { mySwap(arr[min], arr[i]); } } } template void printArray(T arr[], int len) { for (int i = 0; i < len; i++) { cout << arr[i] << endl; } cout << endl; } int main() { int a[10]; for (int i = 0; i < 10; ++i) { cin >> a[i]; } mySort(a,10); printArray(a,10); }



