常见排序算法及对应的时间复杂度和空间复杂度

  • 时间:
  • 浏览:0
  • 来源:大发时时彩代理—大发大发彩票app

[TOC]

1、插入排序

1.1直接插入排序(从后向前找到合适位置后插入)

1.2 二分法插入排序

1.3 希尔排序

2、选着排序

2.1 直接选着排序

2.2 堆排序

3、交换排序

3.1 冒泡排序

3.2快速排序

4、 归并排序

5、基数排序

image.png

image.png

image.png

基本思想:选着有一三个白基准元素,通常选着第有一三个白元素将会最后有一三个白元素,通过一趟扫描,将待排序列分成两要素,一要素比基准元素小,一要素大于等于基准元素,此时基准元素在其排好序后的正确位置,或者再用同样的方式递归地排序划分的两要素。

实例:

image.png

:

基本思想:在要排序的一组数中,对当前还未排好序的范围内的完正数,自上而下对相邻的有一三个白数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

实例

image.png

基本思想:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。或者,从最低位原先 并且并且并且刚开始,依次进行一次排序。原先 从最低位排序总是 到最高位排序完成原先 ,数列就变成有一三个白有序序列。

实例

初始序列:46,79,56,38,40,84

建堆:

文章参考:https://blog.csdn.net/gane_cheng/article/details/52652705

基本思想:先取有一三个白小于n的整数d1作为第有一三个白增量,把文件的完正记录分成d有一三个白组。所有距离为d1的倍数的记录倒入同有一三个白组中。先在各组内进行直接插入排序;或者,取第三个白增量d2

java代码:

java实现

交换,从堆中踢出最大数:

基本思想:归并(Merge)排序法是将有一三个白(或有一三个白以上)有序表合并成有一三个白新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。或者再把有序子序列合并为整体有序序列。

实例

java实现

image.png

:

图片

实例

image.png

堆的定义下:具有n个元素的序列 (h1,h2,…,hn),当且仅当满足(hi>=h2i,hi>=2i+1)或(hi<=h2i,hi<=2i+1) (i=1,2,…,n/2)时称之为堆。在这里只讨论满足前者条件的堆。由堆的定义能还不需要 了看出,堆顶元素(即第有一三个白元素)必为最大项(大顶堆)。完正二叉树能还不需要 了很直观地表示堆的价值形式。堆顶为根,其它为左子树、右子树。

基本思想:

堆排序是并就有树形选着排序,是对直接选着排序的有效改进。

image.png

基本思想:每步将有一三个白待排序的记录,按其顺序码大小插入到前面将会排序的字序列的合适位置(从后向前找到合适位置后),直到完正插入排序完为止。

实例

基本思想:二分法插入排序的思想和直接插入一样,本来我找合适的插入位置的方式不同,这里是按二分法找到合适的位置,能还不需要 了减少比较的次数。

实例:

内排序有能还不需要 了分为以下几类:

  (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。

  (2)、选着排序:直接选着排序、堆排序。

  (3)、交换排序:冒泡排序、快速排序。

  (4)、归并排序

  (5)、基数排序

思想:初始时把要排序的数的序列看作是一棵顺序存储的二叉树,调整它们的存储序,使之成为有一三个白堆,这时堆的根节点的数最大。或者将根节点与堆的最后有一三个白节点交换。或者对前面(n-1)个数重新调整使之成为堆。依此类推,直到还不需要 了有一三个白节点的堆,并对它们作交换,最后得到有n个节点的有序序列。从算法描述来看,堆排序需用有一三个白过程,一是建立堆,二是堆顶与堆的最后有一三个白元素交换位置。什么都有堆排序有有一三个白函数组成。一是建堆的渗透函数,二是反复调用渗透函数实现排序的函数。

排序大的分类能还不需要 了分为并就有:内排序和外排序。在排序过程中,完正记录存倒入内存,则称为内排序,将会排序过程中需用使用外存,则称为外排序。下面讲的排序总要属于内排序。

image.png

image.png

:

排序算法经过了很长时间的演变,产生了什么都有种不同的方式。对于初学者来说,对它们进行分派便于理解记忆显得有点痛 要。要素算法总要它特定的使用场合,真难通用。或者,朋友 很有必要对所有常见的排序算法进行归纳。

基本思想:在要排序的一组数中,选出最小的有一三个白数与第有一三个白位置的数交换;或者在剩下的数当中再找最小的与第三个白位置的数交换,越来越循环到倒数第三个白数和最后有一三个白数比较为止。

实例: