实现:

#include<iostream>
using namespace std;
#define MAXSIZE 20//顺序表的最大长度
typedef int KeyType;//定义关键字类型为整型
typedef int InfoType;
typedef struct
{KeyType key;//关键字项InfoType otherinfo;//其他数据项
}RedType;
typedef struct
{RedType r[MAXSIZE+1];//r[0]闲置或做哨兵单元int length;//顺序表的长度
}SqList;//顺序表类型void SelectSort(SqList &L)//对顺序表L做简单快速排序
{RedType t;for(int i=1;i<L.length;++i)//在L.r[i..L.length]中选择关键字最小的记录{int k=i;for(int j=i+1;j<=L.length;j++)if(L.r[j].key<L.r[k].key)k=j;//k指向此趟排序中关键字最小的记录if(k!=i){t=L.r[i];L.r[i]=L.r[k];L.r[k]=t;}}
}int main()
{SqList L;for(int i=1;i<=10;i++)L.r[i].key=11-i;L.length=10;for(int i=1;i<=L.length;i++)cout<<L.r[i].key<<" ";cout<<endl;SelectSort(L);for(int i=1;i<=L.length;i++)cout<<L.r[i].key<<" ";cout<<endl;return 0;
}

运行结果:

数据结构与算法之选择排序图文详解及代码 (C++实现)相关推荐

  1. 选择排序(图文详解)

    选择排序 选择排序(Selection sort)是一种简单直观的排序算法. 它的工作原理(以升序为例)是:第一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素 ...

  2. 数据结构之希尔排序图文详解及代码(C++实现)

    问题: 对待排序的数组r[1..n]中的元素进行直接插入排序,得到一个有序的(从小到大)的数组r[1..n]. 算法思想: 1.第一趟取增量d1(d1<n)把全部记录分为d1个组,所有间隔为d1 ...

  3. 数据结构之堆栈排序图文详解及代码(C++实现)

    代码: #include<iostream> using namespace std; #define MAXSIZE 20//顺序表的最大长度 typedef int KeyType;/ ...

  4. 数据结构与算法:选择排序

    数据结构与算法:选择排序 雪柯 大工生物信息 提笔为写给奋进之人 已关注 8 人赞同了该文章 引用自算法图解,作者[美] Aditya Bhargava 译袁国忠 特别备注:本书非原创,但部分内容自己 ...

  5. 数据结构与算法之选择排序

    数据结构与算法之选择排序 目录 基本介绍 选择排序思想 代码实现 1. 基本介绍 选择排序也属于内部排序法,是从排序的数据中,按指定的规则选出某一元素,再依次交换位置后达到排序的目的 2. 选择排序思 ...

  6. c语言将AOE网络的数据写入TXT文档中,数据结构与算法学习辅导及习题详解.张乃孝版-C/C++文档类资源...

    数据结构与算法学习辅导及习题详解.张乃孝版.04年10月 经过几年的努力,我深深体会到,编写这种辅导书要比编写一本湝通教材困难得多. 但愿我的上述理想,在本书中能够得以体现. 本书的组织 本书继承了& ...

  7. android代码查找快捷键是什么,Android Studio搜索功能(查找功能)及快捷键图文详解(示例代码)...

    1.在当前窗口查找文本[Ctrl+F] F3 向下查找关键字出现位置 Shift+F3 向上一个关键字出现位置 2.在当前工程内查找文本[Ctrl+Shift+F] 先会弹出一个对话框,直接点击[fi ...

  8. 数据结构与算法 | 直接选择排序、双向选择排序

    前几章讲了交换排序中较为复杂切高效的堆排序,这次就来讲讲选择排序中最简单的直接选择排序及其改进双向选择排序. 选择排序:顾名思义,就是主要通过选择来完成的排序,每一趟从待排数据中选择一个最大或者最小的 ...

  9. 09_数据结构与算法_选择排序_Python实现

    """ 选择排序:思路:遍历整个列表,找到最小项的位置.如果该位置不是列表的第一个位置,算法就会交换这两个位置的项:然后算法回到第二个位置并重复这个过程 "&q ...

最新文章

  1. mysql数据库密码忘记恢复脚本
  2. 福建省计算机应用考试成绩,福建省高校学生计算机应用水平考试成绩查询
  3. iconfont 无法导入 svg_Figma绘制图标上传至iconfont的正确姿势
  4. 关于IIS连接数限制的介绍
  5. Android编程之ArrayList源码详解及使用
  6. 【转】在Ubuntu上下载、编译和安装Android最新源代码
  7. nyist oj 19 擅长排列的小明(dfs搜索+STL)
  8. 苹果Mac最智能的javascript前端编辑器:WebStorm
  9. 「ZJOI2019」麻将
  10. oracle+调整+表空间,oracle数据库表空间及权限调整示例
  11. android gdb gdbserver
  12. 微信公众号开放标签跳转小程序
  13. 多系统下的蓝牙设备共用配对问题之LTK、EDIV、ERAND.以 Manjaro、Debian、Windows10 为例
  14. 我九点钟上计算机课用英语怎么说,9点18分的英语怎么写(9点18用英语怎么说二种)...
  15. GaussDB(for MySQL)近数据处理(NDP)解锁查询新姿势
  16. IOT语义互操作性之标准与开源
  17. Tina_Linux_WiFi_RF测试_使用指南
  18. 用oracle发送电子邮件
  19. 秒懂机器学习---k-近邻算法实战
  20. 第一天前端学习的内容和心得

热门文章

  1. C++ Primer 5th笔记(8)chapter8 类:IO库-流的状态
  2. Linux中pip install延时问题
  3. Golang经典面试题上
  4. LineageOS编译
  5. 通过句柄找到广告弹窗进程
  6. 160个Crackme009
  7. Spring整合ActiveMQ接收消息
  8. Java的13个规范
  9. 十个经典Java 集合面试题!
  10. 关于分布式锁原理的一些学习与思考:redis分布式锁,zookeeper分布式锁