排序-简单选择排序
来源:互联网 发布:语音模拟软件 编辑:程序博客网 时间:2024/05/22 15:39
简单选择排序
算法思想:
设待排序的记录存放在数组a[]中,数组长度为n。通过n-1趟排序,将a变成一个有序的数组。
(1)第一趟从a[0]开始,通过n-1次比较,从n-1个关键字中找出最小的记录,记做a[k],将a[0]和a[k]交换。
(2)第二趟从a[1]开始,通过n-2次比较,从n-2个关键字中找出最小的记录,记做a[k],将a[1]和a[k]交换。
(3)第i趟从a[i-1]开始,通过n-i+1次比较,从n-i个关键字中找出最小的记录,记做a[k],将a[i]和a[k]交换。
(4)经过n-1趟,排序完成
具体代码实现如下:
#include <iostream>using namespace std;//算法关键 每趟排序结果找最小关键字,然后每一趟把每一个关键字放到一个最终的位置上void sort(int a[],int size){ int k; int i; for( i=0;i<size-1;i++){ k=i; for(int j=i+1;j<size;j++){ if(a[j]<a[k]) k=j; } //交换a[k]和a[i] if(k!=i){ int temp=a[i]; a[i]=a[k]; a[k]=temp; } //输出每趟的排序结果 cout<<"第"<<i+1<<"趟排序结果:"; for(int i=0;i<size;i++){ cout<<a[i]<<" "; } cout<<endl; }}int main(){ int a[8]={40,36,64,90,49,19,25,66}; sort(a,8); cout<<"简单选择排序后的结果:"<<endl; for(int i=0;i<8;i++) cout<<a[i]<<" "; return 0;}
测试结果如下:
阅读全文
0 0
- 排序 -- 简单选择排序
- 排序-简单选择排序
- 排序。。。简单选择排序
- 简单排序---选择排序
- 简单排序:选择排序
- 排序-简单选择排序
- 【排序】简单选择排序
- 排序:简单选择排序
- 简单排序--选择排序
- 简单排序:选择排序
- 排序:简单排序-选择
- 排序-简单选择排序
- 选择排序-简单选择排序
- 【选择排序】简单选择排序
- 选择排序-简单选择排序
- 选择排序-简单选择排序
- 选择排序------简单选择排序
- 选择排序--简单选择排序
- 静态表oracle迁移greenplum方案
- 爬虫从入门 之 关于深度优先和广度优先
- Spring注解
- 回溯法-使用排列树解TSP问题
- 可变参数列表解析
- 排序-简单选择排序
- XGBoost Parameters
- 双向链表-插入元素
- oracle创建用户
- Java 语言的发展历程
- TCP/IP 层次
- 【普及组_在线赛】最小与最大
- Java之I/O处理
- Scala基础之for循环,函数,Lazy关键字