![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
文章平均质量分 76
mobº
兴趣使然
展开
-
排序算法之堆排序
插入排序详解 文章目录插入排序详解一、前言二、使用步骤1.引入库2.读入数据总结 一、前言 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings('ignore原创 2021-09-09 10:44:04 · 137 阅读 · 0 评论 -
排序算法之希尔排序
插入排序详解 文章目录插入排序详解一、前言二、交换法希尔排序三、移动法希尔排序四、时间复杂度和空间复杂度 一、前言 1959 年 77 月,美国辛辛那提大学的数学系博士 Donald Shell 在 《ACM 通讯》上发表了希尔排序算法,成为首批将时间复杂度降到 O(n^2) 以下的算法之一。虽然原始的希尔排序最坏时间复杂度仍然是 O(n^2) 但经过优化的希尔排序可以达到 O(n^{1.3}) 甚至 O(n^{7/6})。 略为遗憾的是,所谓「一将功成万骨枯」,希尔排序和冒泡、选择、插入等排序算法一样原创 2021-08-31 09:35:10 · 196 阅读 · 0 评论 -
排序算法之插入排序
插入排序详解 文章目录插入排序详解一、前言二、交换法插入排序三、移动法插入排序四、时间复杂度 & 空间复杂度 一、前言 插入排序的思想非常简单,生活中有一个很常见的场景:在打扑克牌时,我们一边抓牌一边给扑克牌排序,每次摸一张牌,就将它插入手上已有的牌中合适的位置,逐渐完成整个排序。 插入排序有两种写法: 交换法:在新数字插入过程中,不断与前面的数字交换,直到找到自己合适的位置。 移动法:在新数字插入过程中,与前面的数字不断比较,前面的数字不断向后挪出位置,当新数字找到自己的位置后,插入一次即可原创 2021-08-29 21:40:00 · 127 阅读 · 0 评论 -
排序算法之选择排序
选择排序详解 文章目录选择排序详解一、前言二、冒泡排序的普通写法二、冒泡排序的优化写法 一、前言 **选择排序的思想是:**双重循环遍历数组,没经过一轮比较,找到最小元素的下标,将其交换至首位。 选择排序就好比第一个数字站在擂台上,大吼一声:“还有谁比我小?”。剩余数字来挨个打擂,如果出现比第一个数字小的数,则新的擂主产生。每轮打擂结束都会找出一个最小的数,将其交换至首位。经过 n-1 轮打擂,所有的数字就按照从小到大排序完成了。 动图演示: 图中可以看出,每一轮排序都找到了当前的最小值,这个最小值就原创 2021-08-29 18:39:04 · 300 阅读 · 0 评论 -
排序算法之冒泡排序
冒泡排序详解 文章目录冒泡排序详解一、前言二、冒泡排序的第一种写法三、冒泡排序的第二种写法四、冒泡排序的第三种写法四、时间复杂度 & 空间复杂度 一、前言 冒泡排序是入门级的算法,但也有一些有趣的玩法。通常来说,冒泡排序有三种写法: 一边比较一边向后两两交换,将最大值 / 最小值冒泡到最后一位; 经过优化的写法:使用一个变量记录当前轮次的比较是否发生过交换,如果没有发生交换表示已经有序,不再继续排序; 进一步优化的写法:除了使用变量记录当前轮次是否发生交换外,再使用一个变量记录上次发生交换的位原创 2021-08-25 15:29:34 · 125 阅读 · 0 评论