十种排序算法概览

本文提供十大排序算法的快速记忆表格,包括冒泡、选择、插入、希尔、归并、快速、堆、计数、桶、基数排序。重点介绍了插入、归并、堆和快速排序,通过宋词记忆法帮助读者迅速回忆各算法步骤。建议通过LeetCode912.排序数组题目实践这些算法。
摘要由CSDN通过智能技术生成

本文旨在为了忘记时快速回忆起十种排序算法大致分别怎么进行的,没有具体讲解也无具体代码,具体讲解与代码可以参考:算法通关手册01章02节

快速记忆表格

参考b站视频:马士兵说:30秒让你记住所有排序算法-宋词记忆法
在这里插入图片描述

快速回忆各算法

重点是插入排序归并排序堆排序快速排序。为便于理解记忆,称数组中索引小的元素是‘左边’的元素,索引大的元素是‘右边’的元素。

01.冒泡排序

从左往右依次扫描,相邻元素依次比较(索引依次是01,12,23,34……),左右两个元素,左小于等于右不变,右小于左不变。

02.选择排序

从左往右依次扫描,以第 i i i个元素为标杆( i i i 0 0 0 n n n依次增大),从 i + 1 i+1 i+1以后的元素中选择最小的元素,若该元素小于第 i i i个元素则交换,不然则不变。

03.插入排序(重点)

从左往右依次扫描,前 i i i项都是已经用排好的序列( i i i 0 0 0 n n n依次增大),把第 i + 1 i+1 i+1项(无序序列的第一项)依次与 i i i项及以前的元素比较大小,插入到合适的位置。

04.希尔排序

b站视频:马士兵说:希尔排序算法-整点儿稍微复杂的

Q:既然希尔排序每组内也用的是插入排序,为什么不直接使用插入排序?
A:因为如果分组很多,每个组内元素就比较少,移动、比较、插入的次数就会少一些;
分组较多时
如图,一组内只有4个元素,数字1只需要比较3次,就可以挪到最开头,但如果直接整个序列用插入排序,那次数可就多多了。

而若最后一步gap为1了,挪到的距离又比较少,所以整体复杂度比插入排序少很多。
gap为1时
如图,若到了最后一步,gap为1了,那么由于组内已经排好序了,较小的元素都会比较集中在前面,因此移动的次数也会变少。

05.归并排序(重点)

06.快速排序(重点)

07.堆排序(重点)

08.计数排序

09.桶排序

10.基数排序

练习

LeetCode 912. 排序数组
如果不用内置函数,可以在这道题里把各种算法自己实现一遍

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值