简单选择排序(simple selection sort)的基本思想:
第一次选择所有数组元素中最小的放到第一个位置,第二次从剩下的n-1个元素中选择最小的放到第二个位置,以此类推,直到剩下一个元素,放到最后的位置上。
基本步骤:
(1)首先通过n-1次比较,从n个数组元素中找出最小的,将它与a[0]交换——第1趟选择排序,结果最小的数被安置在a[0]位置上。
(2)再通过n-2次比较,从剩下的n-1个数组元素中找出次小的,将它与a[1]交换——第二趟选择排序,结果次小的放在a[1]的位置上。
(3)重复上述过程,共经过n-1次排序后,排序结束。
代码:
#include <iostream> using namespace std; int main() { int a[8]={40,58,12,33,90,20,80,65}; int k,t; for(int i=0;i<7;i++) { k=i; for(int j=i+1;j<8;j++) if(a[j]<a[k]) k=j; if(k != i) { t = a[k]; a[k] = a[i]; a[i] = t; } } for(int i=0;i<8;i++) cout<<a[i]<<endl; }