简单选择排序
来源:互联网 发布:mac系统如何倒退 编辑:程序博客网 时间:2024/06/06 00:56
选择排序—简单选择排序(Simple Selection Sort)
基本思想:
在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。
简单选择排序的示例:
操作方法:
第一趟,从n 个记录中找出关键码最小的记录与第一个记录交换;
第二趟,从第二个记录开始的n-1 个记录中再选出关键码最小的记录与第二个记录交换;
以此类推…..
第i 趟,则从第i 个记录开始的n-i+1 个记录中选出关键码最小的记录与第i 个记录交换,
直到整个序列按关键码有序。
#include<iostream>#include<string>using namespace std;void print(int a[],int n,int i){ cout << "第" << i+1 << "趟:"; for(int j=0;j<n;j++){ cout << a[j] << " "; }}int selectMin(int a[],int n,int i){ int k=i; //找的时候是从i+1开始找的 for(int j=i+1;j<n;j++){ if(a[k] >a[j]) k=j; } return k;}void selectSort(int a[],int n){ int key ; //从0开始循环,从1开始找,因为找到的最小值是要跟0位置换 for(int i=0;i<n;i++){ key=selectMin(a,n,i); if(key != i){ int temp; temp=a[i]; a[i]=a[key]; a[key]=temp; } print(a,n,i); }} int main(){ int a[8]={9,7,6,5,4,3,2,1,}; selectSort(a,8);}
第1趟:1 7 6 5 4 3 2 9 第2趟:1 2 6 5 4 3 7 9 第3趟:1 2 3 5 4 6 7 9 第4趟:1 2 3 4 5 6 7 9 第5趟:1 2 3 4 5 6 7 9 第6趟:1 2 3 4 5 6 7 9 第7趟:1 2 3 4 5 6 7 9 第8趟:1 2 3 4 5 6 7 9
阅读全文
0 0
- 选择排序-简单选择排序
- 【选择排序】简单选择排序
- 选择排序-简单选择排序
- 选择排序-简单选择排序
- 选择排序------简单选择排序
- 选择排序--简单选择排序
- 选择排序-简单选择排序
- 选择排序-简单选择排序
- 排序 -- 简单选择排序
- 排序-简单选择排序
- 排序。。。简单选择排序
- 简单排序---选择排序
- 简单排序:选择排序
- 排序-简单选择排序
- 【排序】简单选择排序
- 排序:简单选择排序
- 简单排序--选择排序
- 简单排序:选择排序
- 643. Maximum Average Subarray I
- Android EditText限制文本输入的长度并给予提示
- cronatab周期性任务
- 我的vue插件使用整理
- Android 实现人脸识别
- 简单选择排序
- 储存过程
- Filter学习杂记
- $.ajax()方法详解
- PHP 热更新的简单程序
- Hadoop学习笔记 2
- 先验概率与后验概率的区别
- 空类型的sizeof问题与C++对象模型
- 机器学习练习(四)——异常检测