排序
someone_and_anyone
未知
展开
-
选择排序过程模拟
选择排序是一种简单直观的排序算法。它的工作原理很容易理解:初始时在序列中找到最小(大)元素,放到序列的起始位置作为已排序序列;然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。以此类推,直到所有元素均排序完毕可以使用for循环完成操作#include<iostream>#include<cstdio>#include<cstring>...原创 2018-07-06 15:54:35 · 412 阅读 · 0 评论 -
冒泡排序过程模拟
冒泡排序, 将当前数据与后面的数据进行比较,如果当前数据大于选到的数据,将两者进行交换。其过程就像吐泡泡#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int MAXN = 10005;int num[MAXN];void P(int ar...原创 2018-07-06 15:34:19 · 333 阅读 · 0 评论 -
归并排序过程模拟
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 具体的操作方法为对其不断地分割为两半并对两半进行排序,最后统一进行排序。因此,可以使用递归对不断的分割排序。 自己手动模拟了整个过程,尚需优化。#include<iostream>#include<cstdio>#incl...原创 2018-07-06 14:34:05 · 314 阅读 · 0 评论 -
插入排序过程模拟
插入排序,将一个数不断的与前一个数进行比较,如果小于(大于)就进行交换, 直到成为第一个数或前一个数 大于等于它#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int MAXN = 10005;int num[MAXN];void P(in...原创 2018-07-06 16:21:19 · 260 阅读 · 0 评论 -
快速排序过程模拟
快速排序是以左端数据基准,从右向左找小于它的数,从左向右找大于它的数,找到后进行交换并继续查找,如果两各指针重合,就与基准数据交换,并在基准数据的左右重复以上过程。#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int MAXN = 10005;...原创 2018-07-07 08:33:46 · 917 阅读 · 0 评论 -
桶排序过程模拟
桶排序, 可以理解成开一个数组当做桶,将数据放入不同的桶中,最后从小到大输出桶的编号#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int MAXN = 10005;const int INF = 0x3f3f3f3f;int num[MAX...原创 2018-07-07 08:58:49 · 189 阅读 · 0 评论 -
希尔排序过程模拟
希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,...原创 2018-07-07 10:42:06 · 388 阅读 · 0 评论 -
堆排序过程模拟
将二叉树进行排序,使得每个节点小于它的左右子节点,这样的二叉树称为最小堆。在对二叉树进行排序时,要将节点与左右子节点进行比较,找到最小值并与节点交换,并且不断的向下进行排序。#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int MAXN = 10...原创 2018-07-07 16:23:45 · 311 阅读 · 0 评论