排序
期待777
这个作者很懒,什么都没留下…
展开
-
C++实现归并排序
文章目录归并排序实例演示代码实现结果展示归并排序的特性总结:归并排序基本思想:归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。实例演示代码实现#include<iostream>using namespace std;#include<vector>void _Mer原创 2021-01-29 19:17:19 · 844 阅读 · 0 评论 -
C++非递归实现快速排序算法
文章目录使用非递归原因实现方法代码实现使用非递归原因因为当数据量非常大的时候,使用递归就会产生巨大的栈帧,就会造成栈溢出,所以我们来学习一下非递归是如何实现快排算法实现方法递归的算法主要是在划分子区间,如果要非递归实现快排,只要使用一个栈来保存区间就可以了。一般将递归程序改成非递归首先想到的就是使用栈,因为递归本身就是一个压栈的过程。代码实现int PartSort3(vector<int>& a,int begin,int end){ int cur=begin原创 2021-01-29 16:31:06 · 1265 阅读 · 0 评论 -
C++递归实现快速排序(三种划分区间方式)----面试常考点
文章目录快速排序概述实例演示代码实现1. hoare版本(图例)2. 挖坑法3. 前后指针版本主函数体快速排序的特性总结:快速排序概述快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止。实例演示代码实现将区间按照基准值划分为左右两半部分的常见方式有:1.原创 2021-01-29 01:00:14 · 279 阅读 · 1 评论 -
C++实现冒泡排序
文章目录冒泡排序概述实例演示实现代码1.升序2.降序冒泡排序的特性总结冒泡排序概述比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。实例演示实现代码1.升序#include<iostream>using namespace std;#include<原创 2021-01-27 21:18:04 · 223 阅读 · 0 评论 -
C++实现堆排序过程及原理
文章目录堆排序概述实例演示实现代码堆排序的特性总结堆排序概述堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是通过堆来进行选择数据。需要注意的是排升序要建大堆,排降序建小堆。实例演示1.第一步,升序建大堆2.第二步,将根结点与最后的叶子结点交换,然后再次建大堆(每次最后确定的最大数不参与建大堆)实现代码#include<iostream>using namespace std;#include<vector>原创 2021-01-25 23:32:49 · 324 阅读 · 0 评论 -
C++实现直接选择排序
文章目录直接选择排序概述实例演示实现代码升序降序直接选择排序的特性总结:直接选择排序概述选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。实例演示这里我们将选择排序更有效一点,一次遍历找到最小,最大的值分别放在begin,end位置实现代原创 2021-01-25 21:58:46 · 438 阅读 · 0 评论 -
C++实现希尔排序
文章目录希尔排序简述实例演示实现代码1.升序2.降序希尔排序的特性总结希尔排序简述希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个文件恰被分成一组,算法便终止。实例演示过程:1.预排序2.直接插入排序实现代码1.升序#include<iostream原创 2021-01-25 20:13:31 · 348 阅读 · 0 评论 -
C++实现直接插入排序算法
文章目录基本思想实现思路实现代码1.升序2.降序总结基本思想直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。在实际生活中,就好比我们打扑克牌一样,每接一张牌将他插入合适位置实现思路实现代码1.升序//直接插入排序#include<iostream>using namespace std;#include<vector>void Ins.原创 2021-01-15 23:51:40 · 855 阅读 · 0 评论