排序算法
比奇堡咻飞兜
我很丰富,无法简介
展开
-
希尔排序
一.什么是希尔排序希尔排序是插入排序的一种改良算法,是一种不稳定的排序算法。不同于插入排序每次的步长为1,希尔排序的步长可以自己进行拟定,只要逐渐减小最后到1即可。比如数组 A={2,4,7,2,4,8,9,0,1}我们先定义步长为4,那么下标为0,4,8…的数字将会进行比较并排序同理下标为1,5,9… 2,6,10… 3,7,11… 的数字都会分组进行排序之后步长可以缩小为2,然后为1,排序则完成。上图步长为23,10,4,1注意:图片源自:https://commo原创 2021-03-02 09:05:26 · 103 阅读 · 2 评论 -
基数排序
一.什么是基数排序基数排序是一种非比较型的整数排序算法,它是将整数按照位数分割成不同的数字,然后按照这些数字进行排序。注意:图片源自:https://commons.wikimedia.org/w/index.php?curid=84921089下面有完整的C++代码,以及解释过程。二.基数排序过程现在对一数组 {27,91,1,97,17,23,84,28,72,5,67,25},进行基数排序,我们从个位开始排序。按个位数从左到右将所有数字放入下面的表格中:0原创 2021-02-25 12:22:07 · 115 阅读 · 0 评论 -
选择排序
一.什么是选择排序选择排序是一种简单直观的排序算法。我们在每一次循环中要找到最小(大)的数,然后把它放在数组前端,然后在剩下的数中循环实现该操作。这就是选择排序的基本概念。下面是具体实现动画:注意:图片源自:https://commons.wikimedia.org/w/index.php?curid=3330231下面有完整的C++、python代码二.C++代码#include<iostream>using namespace std;/*选择排序:将第i小原创 2021-02-23 21:36:23 · 190 阅读 · 0 评论 -
插入排序
一.什么是插入排序插入排序是一种简单的排序算法,它只需要从前往后扫描一遍,扫描到的每个数都需要和前面的所有数进行比较,然后把这个数放在合适的位置。注意:图片源自:https://commons.wikimedia.org/w/index.php?curid=14961606下面有C++、python的完整代码实现二.举例要为数组 {3,2,1,7,4} 排序第一次扫描得到 {3}第二次扫描插入2,得到{2,3}第三次扫描插入1,得到{1,2,3}第四次扫描插入7,得到{1原创 2021-02-23 12:11:11 · 227 阅读 · 0 评论 -
快速排序
一.什么是快速排序快速排序需要再数组中找到一个“基准”(pivot),然后将小于基准的元素按原相对位置放在基准值的左边,大于基准的元素按原相对位置放在基准的右边。依此类推,每一块区域再重复该操作,知道拍好顺序。选择基准值的方法有很多,可以选择第一个元素,也可以根据自己的需求选择相应位置的元素。我们的做法选择的是位于数组最中间的元素做为基准值。注意:图片源自:https://commons.wikimedia.org/w/index.php?curid=1965827我们下面使用了完整的C原创 2021-02-22 17:46:28 · 173 阅读 · 1 评论 -
归并排序
一.什么是归并排序归并排序就是采用分治的算法,先将整个数组分成两个两个的小块(偶数个元素时),当个数为奇数时有一个单独的元素为一组,然后每个小块内部进行排序,之后两个相邻的小块进行排序,直到完全排好顺序。注意:图片源自:https://commons.wikimedia.org/w/index.php?curid=14961648下面含有C++的完整递归代码,其中带有注释。二.C++代码#include<iostream>using namespace std;/*原创 2021-02-22 10:47:51 · 207 阅读 · 0 评论