数据结构和算法学习--堆排序

数据结构和算法学习--堆排序一、堆排序基本介绍(1)堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。(2)堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆,注意:没有要求结点的左孩子的值和右孩子的值的大小关系。(3)每个结点的值都小于或等于其左右孩子结点的值,称为小...

Java 2020-02-14 PM 1469次 0条

数据结构和算法学习--常用排序算法总结和对比

数据结构和算法学习--常用排序算法总结和对比相关术语解释:1)稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;2)不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;3)内排序:所有排序操作都在内存中完成;4)外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;5)时间复杂度: 一个算法执行所耗费的时间。6)空间复杂度:运行完...

Java 2020-02-05 PM 1332次 0条

数据结构和算法学习--基数排序

数据结构和算法学习--基数排序一、基数排序(桶排序)介绍(1)基数排序(radix sort)属于“分配式排序”(distribution sort),又称"桶子法"(bucket sort)或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用(2)基数排序法是属于稳定性的排序,基数排序法是效率高的稳定性排序法(3)基数排序(Radix S...

Java 2020-02-05 PM 1422次 0条

数据结构和算法学习--快速排序

数据结构和算法学习--快速排序一、快速排序法介绍快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。二、快速排序法示意图三、快速排序法应用实例要求:对[-9,78,0,23,-567...

Java 2020-02-04 PM 1655次 0条

数据结构和算法学习--归并排序

数据结构和算法学习--归并排序一、归并排序介绍归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案“修补”在一起,即分而治之)二、归并排序思想示意图1-基本思想三、归并排序思想示意图2-合并相邻有序子序列再...

Java 2020-02-03 PM 1435次 0条

数据结构和算法学习--希尔排序

数据结构和算法学习--希尔排序一、简单插入排序存在的问题我们看简单的插入排序可能存在的问题.数组 arr = {2,3,4,5,6,1} 这时需要插入的数 1(最小), 这样的过程是:{2,3,4,5,6,6}{2,3,4,5,5,6}{2,3,4,4,5,6}{2,3,3,4,5,6}{2,2,3,4,5,6}{1,2,3,4,5,6}结论: 当需要插入的数是较小的数时,后移的次数明显增多...

Java 2020-02-02 PM 1395次 0条

数据结构和算法学习--插入排序

数据结构和算法学习--插入排序一、插入排序介绍插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。二、插入排序法思想插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,元素表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素...

Java 2020-02-01 PM 1471次 0条

数据结构和算法学习--选择排序

数据结构和算法学习--选择排序一、基本介绍选择排序属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。二、选择排序的思想选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]~arr[n-1]中选取最小值,与arr[1]交换,第三次...

Java 2020-02-01 PM 1679次 0条

数据结构和算法学习--冒泡排序

数据结构和算法学习--冒泡排序一、基本介绍冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就像水底下的气泡一样逐渐向上冒。优化:因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素...

Java 2020-02-01 PM 1489次 0条

数据结构和算法学习--排序算法简介

数据结构和算法学习--排序算法简介1. 排序算法的介绍排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排序的过程。2. 排序的分类:(1)内部排序:指将需要处理的所有数据都加载到内部存储器(内存)中进行排序。(2)外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储(文件等)进行排序。(3)常见的排序算法分类:3. 算法的时间复杂度3.1 度量一...

Java 2020-01-31 PM 1795次 0条