美文网首页
基本排序方法

基本排序方法

作者: 刘欣怡_2022公益强化班 | 来源:发表于2022-02-17 14:57 被阅读0次

在算法中有八种基本排序,即冒泡排序;选择排序;插入排序;希尔排序;归并排序;快速排序;基数排序;堆排序;计数排序;桶排序。排序算法又可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。

  常见的内部排序算法有:冒泡排序、选择排序、交换排序、插入排序、希尔排序、快速排序、归并排序、桶式排序、基数排序等,其中最常用的是计数排序,选择排序,冒泡排序,插入排序和快速排序

        排序算法的稳定性:若两个记录A,B的关键字值相等,但排序后A,B的先后次序保持不变,则成这种排序算法是稳定的。

冒泡排序

1.冒泡排序的基本实现思想:通过对待排序的序列从前往后依次比较相邻元素的排序码,若发现逆序则交换,使排序码较大的元素逐渐从前部移动到后部

2.注意事项:因为排序的过程中,各元素逐渐接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此在排序过程中设置一个标志swap判断元素是否进行过交换,从而可以避免不必要的重复比较。

3.结束条件:在任何一趟进行过程中未出现交换。

4.代码实现:

快速排序

1.快速排序的实现思想:确认列表第一个数据为中间值,第一个值看成空缺(低指针空缺),然后在剩下的队列中,看成有左右两个指针(高低)。开始高指针向左移动,如果遇到小于中间值的数据,则将这个数据赋值到低指针空缺,并且将高指针的数据看成空缺值(高指针空缺)。然后先向右移动一下低指针,并且切换低指针移动。当低指针移动到大于中间值的时候,赋值到高指针空缺的地方。然后先高指针向左移动,并且切换高指针移动。重复上两步操作。直到高指针和低指针相等时退出,并且将中间值赋值给对应指针位置,然后将中间值的左右两边看成行的列表,进行快速排序操作。

2.注意事项:需要定义的变量较多,最好做到见名知意。

3.代码实现:

选择排序

1.选择排序的实现思想:将第一个值看成最小值,然后和后续的比较找出最小值和下标,交换本次遍历的起始值和最小值

2.说明:每次遍历的时候,将前面找出的最小值,看成一个有序的列表,后面的看成无序的列表,然后每次遍历无序列表找出最小值。

3.代码实现:

插入排序

1.插入排序的实现思想:默认从第二个数据开始比较。如果第二个数据比第一个小,则交换。然后在用第三个数据比较,如果比前面小,则插入(狡猾)。否则,退出循环说明:默认将第一数据看成有序列表,后面无序的列表循环每一个数据,如果比前面的数据小则插入(交换)。否则退出。

2.代码实现

希尔排序

1.希尔排序的实现思想:、基本上和插入排序一样的道理,不一样的地方在于,每次循环的步长,通过减半的方式来实现

2.说明:基本原理和插入排序类似,不一样的地方在于。通过间隔多个数据来进行插入排序。

3.代码实现

归并排序

1.归并排序的实现思想:将列表按照对等的方式进行拆分,拆分小最小快的时候,在将最小块按照原来的拆分,进行合并,合并的时候,通过左右两块的左边开始比较大小。小的数据放入新的块中

2.说明:简单一点就是先对半拆成最小单位,然后将两半数据合并成一个有序的列表。

3.代码实现

相关文章

  • 数据结构基础学习之(内排序)

    学习知识 排序基本概念 插入排序的实现方法及性能分析 交换排序的实现方法及性能分析 选择排序的实现方法及性能分析 ...

  • 数据结构课程 第十四周 排序

    基本概念和排序方法概述 这里只讲从小到大! 存储结构: 插入排序 基本思想 直接插入排序 折半插入排序 希尔排序 ...

  • 冒泡排序算法(C语言)

    排序(冒泡排序算法) 本专题将总结数据结构中几种常见的基本排序方法(后续的几种排序方法将会在整理后发布),意图将计...

  • JAVA 集合框架(三)排序

    对Array的排序 同过Arrays的sort方法。 基本类型的排序 调用Arrays.sort(基本类型数组);...

  • E战到底之不为人知的排序和筛选的高级用法

    1. 排序的基本用法 方法一、选中数据→开始→排序和筛选→升序、降序 方法二、选中数据→数据→升序/降序(↑↓) ...

  • 希尔排序

    希尔排序又称“缩小增量排序”,是对直接插入排序方法的改造。 希尔排序是一种不稳定的排序方法。基本思想是将整个待排记...

  • 数组及其ES5特性,字符串小结

    数组 基本使用和一些常用方法 排序 sort sort方法用于对数组进行排序,当没有参数的时候会按字母表升序排序,...

  • js基础算法

    排序 排序有很多种算法,这里只写基本的冒泡排序和快速排序 去重 这里写三种方法

  • Arrays类及其方法分析

    排序 Arrays.sort()方法,对于基本数据类型采用DualPivotQuicksort(多路快排)进行排序...

  • iOS算法(一)快速排序算法

    快速排序是当遇到较大数据时,排序快,高效的方法(公司面试时,基本上会被问到...) 该方法的基本思想是: 1.先从...

网友评论

      本文标题:基本排序方法

      本文链接:https://www.haomeiwen.com/subject/enlylrtx.html