接下来我们看一下数据结构里面的专题叫排序,排序有哪些内容,首先排序的基本概念,各种排序的比较1. 中间交换排序,对于交换排序有冒泡排序和快速排序2. 选择排序3. 插入排序我们先来看排序的基本概念什么叫排序?有相关的概念我就不在这里重复了,给一组数据它是无序的,我们按照某个关键字对他进行排序,最终变成一个有序的就可以了.看他的一种分类什么叫内部排序,什么叫外部排序?如果整个的排序都在内存中进行,那就叫内部排序,但是还有一种情况是数据量特别的大,大量的数据是存在硬盘里面的,我们要一次加载内存里面,加不进来,周转不开,怎么办,仓库里面的东西太多,一下子放在车间放不下,那怎么办呢,内存中无法容纳全部数据,需要借助外部存储设备实现,这叫外部排序,我们讲的肯定都是内部排序,我们讲的都是在内存里面进行的,这是第一点,知道有这个排序
下面有一个叫稳定排序,一个叫不稳定排序什么叫稳定排序,什么叫不稳定排序,我们来看,比如说在这个排序之前,他现在是无序的,但是这里面有两个47,前面我们用黄色来标记,后面我们用蓝色来标记,排玩序之后,这是不是有序了,那这两个47肯定是挨着了,并且每次都是这个样子,那他就是稳定的,如果他排完序之后变成这个样子了,什么样子呢,蓝色本来是在后面的跑到前面了,前面的跑到后面去了,哪怕10次又一次是这个样子呢,他也是不稳定的,但是你要记住,不管是稳定的还是不稳定的,他都是给你排序排好的,都排好序了,最终的结果都是有序的,只是要注意一个细节,有人说这有意义吗,这很有意义,有时候我们没有这方面的要求,但是有时候我们有稳定性的要求,如果没有这个要求,无所谓,用哪一种都行,有这个要求呢,就说大家想一下,举例子啊,我要按照学生的分数排序,但是1000个学生,他的分数肯定有一样的,那就默认的按照学号排序了,相同分数按照学号排序,之前给了一个按照学号的,那分数可能就是这个样子,它是没有顺序的,但是这个学号是小,这个学号的是不是大啊,我们希望排完序之后,如果他的分数一样,学号小的在前面,学号大的排在后面,如果有这个要求的话,那我们就从稳定的排序,那如果没有这个要求,只要分数一样,谁先谁后无所谓,那不稳定的是不是也可以,这一点大家要知道了还有一个叫比较的排序,和非比较的排序,排序应该是离不了比较的,为什么,他为什么排序,你像这几个数现在是无序的吧,你怎么就把它变成有序了,你总要拿着56和34比较一下吧,比较谁大谁小,然后再看怎么交换,怎么移动啊,是不是要做这些操作啊,所以大部分的排序啊,都是要基于比较的,都是离不了比较的,但是这个世界太大了,有些内容知识太多了,有时候有些排序是不需要比较的,这是另外一种思维,大部分的排序都是基于比较的要先判断大小,再进行后一步操作,作为排序的依据,但是也有例外的啊,有些排序,比如计数排序,基数排序,这个是不需要比较的
基于比较的排序我们又可以分为4大类:1. 插入排序2. 交换排序3. 选择排序4. 归并排序冒泡就是交换的,选择就是选择的,插入就是插入的,你把这个3个最基本的掌握了,那你知道他们是基于什么的了这是我们所说的一个内容再往下看,看这张图吧,这张图我们就知道包括哪些内容了,排序算法包括比较排序和非比较排序,比较排序是占多数的插入排序:比如我们这里又两个,最基本的是直接插入排序,他简单,他的效率低,他的完善一下,比如变成希尔排序了选择排序:这个选择排序它是最基本的,效率低,简单,他的效率是不是低,完善一下,基于同一种思路,堆排序交换排序:冒泡排序,这是最基本的,效率比较低,我们再完善一下,可能就成了快速排序了,插入,选择,交换排序,是不是都有低级和高级之分,就是这些,三种基本排序,插入的,选择的,冒泡的应该在插入排序里面还有另外一种排序,这个大家记住,一般来说是有八大排序类型,哪八大呢,插入排序里面还有一个折半插入排序,这样一来比较排序里面就有八种排序,一共有8种了,归并排序: 非比较排序里面就有计数排序,还有一个基数排序,这是一个总表,目前我先把这个表放到这儿,插入排序,选择排序,交换排序,归并排序,这些是不是基于比较的,比如基数排序,他没有写计数排序,还有一个计数排序,有时间复杂度,有空间复杂度,有稳定性,一会我们再来做相关的总结,而在这里我们先告诉大家这么一点,时间复杂度最高的是哪一个,是O(n2),n的平方,估计两层循环的,这三个算法,是效率最低的三个,就是我们所说的直接插入,直接选择,冒泡排序,算法最简单,效率最低下,但是我们学习的时候,是不是先从这个开始的,先学简单的,再学复杂的,简单的我们可以优化成后面复杂一些的,建议大家这么多的排序,建议大家有限掌握着三个最基本的,然后重点来看一下后面快速的,因为它里面确实有内容要讲,再看的话可以建议看看归并排序,因为归并里面也用到了递归,这一点和快速是一样的建议优先掌握的是这三个:直接插入,简单选择,冒泡排序,快速排序这就是我们关于排序的一些内容

排序及其分类(一级)相关推荐

  1. excel如何分类汇总_Excel教程:一个排序后分类汇总他弄了一天 Excel神技能!

    助力春季就业,越努力越幸运 特推超级会员限时疯狂抢购 点击了解 支持微信公众号+小程序+APP+PC网站多平台学习 很多小伙伴都认为Excel排序功能非常简单,自己都掌握了. 我们来看看下面的小伙伴的 ...

  2. 分类变量 哑变量矩阵 指标矩阵_不懂数据集重排序?分类变量转换苦难?4种python方法,不再难!...

    前言 数据排序.分类变量转换是数据处理与分析中常常遇到对场景,且需要有准确的判断以及准确的处理方式,否则会影响数据质量,产生脏数据,进而影响数据呈现效果或预测效果等,更别提机器学习与深度学习准确性等系 ...

  3. 【教学类-32-02】十二生肖2.0版(绘画+手工+排序+左右分类+玩牌)(中班:偏科学-数)

    作品展示 2.0样式--动物头部方向随机向左.或者向右 背景需求 1.0样式--动物头部方向全部向右, 我希望孩子分类的时候还能够"判断生肖头部的方向做一个左右分类" 素材准备: ...

  4. Mysql排序与分类汇总实践

    Mysql排序与分类汇总实践 一.目的 1.掌握数据排序的基本方法 2.学会使用SQL命令进行数据分类汇总操作 二.内容 用于企业管理的员工管理数据库,数据库名为YGGL,包含员工信息表Employe ...

  5. javascript通过json数据按格式生成一个按字母分类排序的分类信息表

    效果图如下 1.json数据格式 var _people=[{name:'朱瑞',url:'aaaaaa',nick:'zhu'},{name:'刘桂清',url:'aaaaa',nick:'liu' ...

  6. 数据结构排序算法(一):排序方法分类和各种排序方法的实现

    一. 实验目的 1. 掌握各种常用排序的算法思想: 2. 掌握各种常用排序的算法实现: 3. 掌握各种常用排序时间复杂度,比较各种排序的优缺点. 二.排序算法的归类: 总的排序算法分为以下几类: 1. ...

  7. mysql 字母分组_MySQL按照汉字的拼音排序、按照首字母分类

    项目中有时候需要按照汉字的拼音排序,比如联系人列表.矿物分类等,有的还需要按拼音字母从A到Z分类显示. 如果存储汉字的字段编码使用的是GBK字符集,因为GBK内码编码时本身就采用了拼音排序的方法(常用 ...

  8. 表格中重复项设置一级和二级序号排序

    摘要: 一级分类存在重复项,需要排序,二级分类也存在重复项,也需要排序,相同一级分类中的二级分类需要重新从一开始排序(重点和难点) 先来看看效果: 公式: 公式一:获取大类序号 =MAX($A$2:A ...

  9. 数据结构之排序的概念及分类

    排序的概念 排序的一般定义:排序是计算机内经常进行的一种操作,其目的是将一组"无序"的数据元素调整为"有序"的数据元素. 例如:将下列关键字序列 52,49, ...

最新文章

  1. 漫话:如何给女朋友解释什么是Git和GitHub?
  2. 树的懒加载怎么用ajax调接口,ElementUI tree树形控件的懒加载使用
  3. 获取某个元素相对于视窗的位置-getBoundingClientRect
  4. 一分钟学会spring注解之@Scope注解
  5. 多线程的实现方式_Java中线程的状态及多线程的实现方式
  6. IOS TextField设置大全
  7. 模意义下的FFT算法
  8. input file的默认value清空与赋值方法
  9. SharpHsql -- 只适合用于演示数据的数据库引擎
  10. 《推荐系统笔记(十一)》Learning to rank(LTR排序问题)的介绍和RankNet算法(内含详细推导)
  11. fgets 和gets_C编程中的fgets()和gets()
  12. 如何从服务器上取pdf文件,如何从服务器响应创建pdf文件?
  13. Android系统简介(中):系统架构
  14. 史上最全phpwind版本,从phpwind1.0到phpwind8所有版本和升级补丁包
  15. SpringCloud-Alibaba之Nacos,Java集合面试题及答案
  16. 体检信息管理系统功能表
  17. clickhouse-client命令行参数及常用案例
  18. vue实现简单搜索功能
  19. 使用html2canvas生成海报
  20. 2022 年终奖个税计算方法,看看你被多收割了多少

热门文章

  1. ETL学习之四:SQL Server Integration Services入门
  2. poj 1729 Jack and Jill (搜索,bfs)
  3. linux ssh基本
  4. 一次真实的蓝屏分析 ntkrnlmp.exe
  5. python之函数用法islower()
  6. JAVA设计模式--辛格尔顿
  7. SQL:将查询结果插入到另一个表的三种情况
  8. 网页上有错误(类不能支持 Automation 操作)解决方法
  9. CentOS-6.0下安装配置Cacti
  10. Windows Azure 真实案例:CCH 财政服务独立软件开发商(ISV)通过托管服务获得了灵活性并节省成本...