一、简单选择排序

空间复杂度:O(1)

时间复杂度:O(n^2)

稳定性:不稳定

适用性:顺序表、链表

//简单选择排序
void SelectSort(int A[],int n){for(i=0;i<n-1;i++){min=i;for(j=i+1;j<n;j++){if(A[j]<A[min])min=j;}if(min!=i)swap(A[i],A[min]);}
}

二、堆排序

空间复杂度:O(1)

时间复杂度:O(nlogn)

稳定性:不稳定

//堆排序
//首先,建立大根堆
void BuildMaxHeap(int A[],int len){for(int i=len/2;i>=1;i--){HeadAdjust(A,i,len);}
} //将以k为根的子树进行调整,可以将该子树变成大根堆
void HeadAdjust(int A[],int k,int len){A[0]=A[k];          //先把根结点存起来for(i=2*k;i<=len;i*=2){if(i<len&&A[i+1]>A[i])        //右子树的值大于左子树i++;if(A[0]>=A[i]){break;}else{A[k]=A[i];k=i;}}A[k]=A[0];          //k所指的位置为原来的根结点最后存放位置
}//堆排序代码
void HeapSort(A[],int len){BuildMaxHeap(A,len);         //建立大根堆 for(i=len;i>1;i--){swap(A[i],A[1]);     //此时把A[1]放到了堆底,也就是数组的末尾 HeadAdjust(A,1,i-1); }
} 

两种选择排序算法:简单选择排序、堆排序相关推荐

  1. java中的排序算法——简单选择排序,树形选择排序与堆排序(一)

    package com.sort; /**  * 选择排序:  * 简单选择排序,树形选择排序与堆排序  *   */ public class SelecSortDemo { /** * ----- ...

  2. 排序算法——简单选择排序(PythonJava)

    基本思想 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换:然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素( ...

  3. 排序算法-简单选择排序

    文章目录 1.基本介绍 2.选择排序的思想 3.选择排序思路分析图 4.代码实现 1.基本介绍 选择排序属于内部排序算法,是从预排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的 ...

  4. 排序算法 | 简单选择排序,算法的图解、实现、复杂度和稳定性分析

    今天讲解一下简单选择排序的原理以及实现.复杂度和稳定性分析 这个内容很简单,轻松加愉快,很快就过了~ 目录 简单选择排序 1 基本思想 2 动态图解 3 代码 4 复杂度分析 简单选择排序 1 基本思 ...

  5. 排序算法之选择排序(简单选择排序、堆排序)

    选择排序(简单选择排序.堆排序) 选择排序 简单选择排序 概念 算法实现 堆排序 概念 算法实现 后续 选择排序 选择排序的基本思想是:每一趟在待排序元素中选取关键字最小(或最大)的元素加入有序子序列 ...

  6. 堆排序算法c语言筛选法,【排序】排序算法之选择排序

    排序算法之选择排序 罗朝辉(http://www.cppblog.com/kesalin) 转载请注明出处 排序是数据处理中经常使用的一种重要运算,在计算机及其应用系统中,花费在排序上的时间在系统运行 ...

  7. 八大排序算法-简单排序(3种)

    八大排序算法-简单排序 javascript-选择排序 jacascript-冒泡排序 jacascript-插入排序 javascript-选择排序 算法思想:简单选择排序是最简单直观的一种算法,基 ...

  8. 选择排序算法流程图_常用排序算法之选择排序

    前两天给大家分享了冒泡排序和插入排序(没关注的同学,可以关注后查看历史消息),今天继续给大家分享另一种常用的排序算法--选择排序. 选择排序 选择排序和插入排序很相似,也区分已排序区间和未排序区间,选 ...

  9. 【排序算法】选择排序(Selection sort)

    选择排序(Selection sort)是一种简单直观的排序算法. 选择排序介绍 它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置:接着,再从剩余未排序的元 ...

  10. 【排序算法】选择排序(C语言)

    [排序算法]-- 选择排序 目录 一.选择排序的原理 二.选择排序的代码实现 三.选择排序的优化 1. 优化思路 2. 排序优化后问题 3. 优化代码的实现 四.选择排序的效率 一.选择排序的原理 ​ ...

最新文章

  1. Linux下编译安装Boost1.66
  2. 如何设置不一样的奇偶页页眉?
  3. 关于Linux路由表的route命令(转)
  4. Android调用手机浏览器打开某网页出现异常情况
  5. wait(),notify(),notifyAll()进行了详细的分析介绍
  6. C语言指针——基础知识理解
  7. 第一章 基于任务的程序设计
  8. 【转载】Mysql注入点在limit关键字后面的利用方法
  9. mybaitis快速生成_Mybatis中使用mybatis-generator结合Ant脚本快速自动生成Model、Mapper等文件...
  10. 桌面下雪软件测试工程师,Xsnow - 在Ubuntu 18.04及更高版本的桌面上下雪
  11. 图片一句话木马简单制作方法
  12. 高斯win和linux,微软雅黑在 win 和 Linux 下安装使用的对比
  13. 捋一捋Unified Language Model Pre-training for Natural Language Understanding and Generation
  14. 三十岁,研究生毕业的你,现在收入多少?
  15. 基于分布式的智联招聘数据的大屏可视化分析与预测
  16. 【实例演示】Android安全须知
  17. 添加域后如何将域用户加入本地管理员组
  18. ens天空盒_这句话的意思
  19. 图形界面介绍Create Placement Blockage
  20. 腾讯人均月薪7.5w,我这是又被平均了?

热门文章

  1. ​​​​​​​CV:利用cv2(加载人脸识别xml文件及detectMultiScale函数得到人脸列表)+keras的load_model(加载表情hdf5、性别hdf5)并标注
  2. usaco2013 mar【懒惰的奶牛】
  3. cnpm与npm指定有什么区别?
  4. python记录_day14 内置函数二 迭代 二分法
  5. java.lang.NullPointerException 空指针异常问题
  6. jQuery选择器整理
  7. vaddin使用技巧
  8. 第七章 综合练习 第四题
  9. Prism4文档翻译(第四章 第一部分) 转载bluesky234
  10. 【烙铁使用规范】—— 烙铁使用、温度测量规范