数据结构篇——常见排序算法核心思想简单梳理

这篇博客总结了八种常见的排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、桶排序和堆排序。每种排序算法的核心思想进行了简明扼要的阐述,适合已经对排序算法有一定了解的人复习巩固。
摘要由CSDN通过智能技术生成

排序算法核心思想总结

emmm 写的比较简单,不适合新手看。适合已经手写过一遍的人复习用。

冒泡排序

核心思想

  1. 两个循环让最小的数一直往上移动
  2. 最小的,第二小的。。。循环到最后就已经排好序了

选择排序

核心思想

  1. 找出数组中最小的一个数
  2. 与数组中第一个交换
  3. 以此类推,找第二个。。。循环到整个数组结束

插入排序

核心思想

  1. 把数组看做左右两份。左边是有序的,右边是无序的。
  2. 从左向右遍历右数组(一开始左数组长度为1,右数组长度为N-1),如果右数组的第一个数小于左数组的最后一个数(从小到大排序),则说明需要把这个数插入到左数组的相应位置中。左数组的部分值需要右移。
  3. 这样一次操作以后左数组长度++,右数组长度–
  4. 循环操作直到整个数组变成左数组

希尔排序(插入排序的优化版)

核心思想

  1. 假设数组长度为N,引入一个间隔因数M。则数组可以被分作N/M份(假设数组为[1,2,3,4]。N=4,设M=2。则数组可以被分作两份:[1,3],[2,4];并不是[1,2]和[3,4]]
  2. 对于被分割之后的数组A(1),A(2)…A(N/M)分别进行插入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值