简单选择排序选择排序的基本思想是:从待排序的元素序列中选择关键字最小或最大的元素,将其放在已排序元素序列的最前面或最后面,其余的元素构成新的待排序元素序列,并从待排序元素序列中选择关键字最小的元素,将其放在已排序元素序列的最前面或最后面。依次类推,直到待排序元素序列中没有待排序的元素,选择排序结束。本节的主要学习内容包括两种常用的选择排序:简单选择排序和堆排序。
12.3.1 简单选择排序
简单选择排序的基本思想是:假设待排序的元素序列有n个,第一趟排序经过n-1次比较,从n个元素序列中选择关键字最小的元素,并将其放在元素序列的最前面即第一个位置。第二趟排序从剩余的n-1个元素中,经过n-2次比较选择关键字最小的元素,将其放在第二个位置。依次类推,直到没有待比较的元素,简单选择排序算法结束。
简单选择排序的算法描述如下。
void SelectSort(SqList *L,int n)
/*简单选择排序*/
{
int i,j,k;
DataType t;
/*将第i个元素的关键字与后面[i+1...n]个元素的关键字比较,将关键字最小的的元素放在第i个位置*/
for(i=1;i<=n-1;i++)
{
j=i;
for(k=i+1;k<=n;k++) /*关键字最小的元素的序号为j*/
if(L->data[k].key<L->data[j].key)
j=k;
if(j!=i) /*如果序号i不等于j,则需要将序号i和序号j的元素交换*/
{
t=L->data[i];
L->data[i]=L->data[j];
L->data[j]=t;
}
}
}
分享到:
相关推荐
零基础学算法(第2版)(零基础学编程)(光盘源码) 本书分为上、下两篇,共10章,上篇用5章的篇幅介绍了算法和数据结构的基础知识,包括基础算法思想、简单数据结构、复杂数据结构、排序和查找算法等内容;下篇用5...
接插入排序,简单选择排序,冒泡排序接插入排序,简单选择排序,冒泡排序接插入排序,简单选择排序,冒泡排序接插入排序,简单选择排序,冒泡排序接插入排序,简单选择排序,冒泡排序大家看看!!
零基础学习算法,共分为两部分——...及想要温习算法的老朋友们,内容包含了简单、 复杂数据结构、排序、 查找、 算法问题和数学问题以及经典算法问题等。另外还有信息学奥赛试题精解也很不错的!希望大家分享学习!
零基础学习算法,共分为两部分——...及想要温习算法的老朋友们,内容包含了简单、 复杂数据结构、排序、 查找、 算法问题和数学问题以及经典算法问题等。另外还有信息学奥赛试题精解也很不错的!希望大家分享学习!
上篇用5章的篇幅介绍了算法和数据结构的基础知识,包括基础算法思想、简单数据结构、复杂数据结构、排序和查找算法等内容;下篇用5章的篇幅介绍了用数据结构解决实际问题的相关程序,包括解决数学问题、数据结构问题...
《零基础学算法(第3版)》分为上、下两篇,共10章。上篇用5章的篇幅介绍了算法和数据结构的基础知识,包括基础算法思想、简单数据结构、复杂数据结构、排序和查找算法等内容;下篇用5章的篇幅介绍了用数据结构解决...
在计算机科学发展过程中,早期数据结构教材大都采用PASCAL语言为描述工具,后来出现了采用C语言为描述工具的教材版本、至今又出现了采用C++语言为描述工具的多种教材版本。本教实验指导书是为已经学习过C++语言的...
示例描述:本章介绍C# 2.0程序设计基础。 3-01.cs 第一个C#程序。 3-02.cs 不导入命名空间来改写程序3-01.cs。 3-03.cs ReadLine()方法读数据。 3-04.cs 常量的使用。 3-05.cs 整型类型的使用。 3...
上篇用5章的篇幅介绍了算法和数据结构的基础知识,包括基础算法思想、简单数据结构、复杂数据结构、排序和查找算法等内容;下篇用5章的篇幅介绍了用数据结构解决实际问题的相关程序,包括解决数学问题、数据结构问题...
示例描述:本章介绍C# 2.0程序设计基础。 3-01.cs 第一个C#程序。 3-02.cs 不导入命名空间来改写程序3-01.cs。 3-03.cs ReadLine()方法读数据。 3-04.cs 常量的使用。 3-05.cs 整型类型的使用。 3-06.cs 结构...
01.第阶段:基础阶段和产品思维 1互联网思维 1-互联网基础思维1.mp4 2-互联网基础思维2.mp4 3-互联网基础思维3.mp4 4-互联网基础思维4.mp4 5-互联网思维之用户思维1.mp4 6-互联网思维之用户思维2.mp4 7-...
├─(23) 07 python s3 day43 jquery选择器.avi ├─(24) 08 python s3 day43 jquery的查找筛选器.avi ├─(25) 09 python s3 day43 jquery练习之左侧菜单.avi ├─(26) day43课件代码.rar (8)\\python全栈day41-50\...
一起来学习数据结构与算法吧一些常用经典算法和数据结构的回顾首先是最经典的排序问题排序选择排序(Selection Sort)复杂度O(n ^ 2)找到最小的元素然后与当前位置交换插入排序(Insertion Sort)复杂度O(n ^ 2)...
根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。 (1)如果一个非空的数据结构满足下列两个条件: ① 有且只有一个根结点; ② 每一个结点最多有一个前件,...
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和...
最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料;本资料仅用于学习。 【课程内容】 第1周 开课介绍 python发展介绍 第一个python程序 变量 字符编码与二进制 字符编码的区别与介绍 用户交互程序 if ...
2.掌握对二叉树每种操作的具体实现,学会利用递归方法编写对二叉树这种递归数据结构进行处理的算法。 二 、实验要求 1.认真阅读和掌握和本实验相关的教材内容。 2.编写完整程序完成下面的实验内容并上机运行。 3...
第⼆步:你需要补习数学知识,你是零基础的话,就先将⾼等数学基础知识学透,从基础的数据分 析、线性代数及矩阵等等⼊门,只有基础有了,才会层层积累,不能没有逻辑性的看⼀块学⼀块。也有⼈有 疑惑,为什么⼈⼯...
3. 关系结构模型:关系式数据结构把一些复杂的数据结构归结为简单的二元关系(即二维表格形式)。常见的有Oracle、mssql、mysql等 二、 主流数据库 数据库名 公司 特点 工作环境 mssql 微软 只能能运行在windows平台,...