谭浩强C++课后习题15——选择排序
题目描述:用选择法对10个整数排序。
算法思路:选择排序法是指每一轮选出最小的一个数字,然后与开头的数字进行交换,例如有10个数字,则第一轮是在10个数字中选出最小的数字,将这个最小的数字与第一个数字交换,第一个数字固定。第二轮从第二个数字开始,选出第二个数字到第十个数字中最小的数字与第二个数字交换,第二个数字确定,以此类推,确定到第九的数字的时候,最后一个数字也就确定,因此十个数字只需要进行九轮。
#include<iostream>
using namespace std;
void sort(int num[], int n) {
int temp, mini;
for (int i = 0;i < n - 1;i++) {
mini = i;
for (int j = i + 1;j < n;j++) {
if (num[j] < num[mini])
mini = j;
}
temp = num[i];
num[i] = num[mini];
num[mini] = temp;
}
}
int main() {
int n;
cout << "输入数字个数:";
cin >> n;
int* num = new int[n];
cout << "输入数组:";
for (int i = 0;i < n;i++)
cin >> num[i];
sort(num, n);
cout << "从小到大:";
for (int i = 0;i < n;i++)
cout << num[i] << " ";
return 0;
}
运行结果: