思想: 简单选择排序是指:对于一个序列A中的元素 A[1] - A[n] ,令 i 从 0 到 n-1 枚举, 进行n 趟操作, 每趟从待排序部分[i,n-1] 中选择最小的元素, 令其余待排序部分的第一个元素a[i] 进行交换,这样元素a[i] ,就会与当前区间[0,i-1] 形成新的有序区间[0,i] 。于是在n 趟操作后,所有元素都有序了。(注:下标问题看你们自己怎么定义的咯)
#include<iostream> #include<stdio.h> using namespace std; int main(){ int n,a[25]; cin >> n; for(int i = 0 ; i < n ; i ++) cin >> a[i]; for(int i = 0 ; i < n ; i ++) { int k = i; // k 变量只需存储下标 for(int j = i+1 ; j < n ; j ++) { if(a[j] < a[k]) { k = j; // 这地方处理的很精妙,通过下标找对应的值 } } int temp; temp = a[k]; a[k] = a[i]; a[i] = temp; } for(int i = 0 ; i < n ; i ++) { cout << a[i] << " "; } }