算法
北冥有鱼s
这个作者很懒,什么都没留下…
展开
-
算法4的c++实现——选择排序
#pragma once #include<vector> using namespace std; template <typename T> bool lessthan(const T &a, const T &b) { return a < b; } template <typename T> void exch(T &...原创 2019-07-13 14:39:12 · 136 阅读 · 0 评论 -
算法4的c++实现———插入排序
一、插入排序简介 直接插入排序(Straight Insertion Sort)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。 二、插入排序的时间复杂度和稳定性 插入排序时间复杂度 直接插入排序的时间...原创 2019-07-13 15:00:22 · 88 阅读 · 0 评论 -
算法4的c++实现———希尔排序
一、希尔排序简介 希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列,所有距离为gap的倍数的记录放在同一个组中;然后,对各组内的元素进行直接插入排序...原创 2019-07-13 15:32:34 · 196 阅读 · 0 评论 -
算法4的C++实现———归并排序
一、归并排序简介 将两个的有序数列合并成一个有序数列,我们称之为"归并"。 归并排序(Merge Sort)就是利用归并思想对数列进行排序。根据具体的实现,归并排序包括"从上往下"和"从下往上"2种方式。我们在此处实现“从上往下”的归并排序。 从上往下的归并排序基本包括3步: ① 分解 -- 将当前区间一分为二,即求分裂点 mid = (low + high)/2; ② 求解 -- 递归地...原创 2019-07-13 21:57:25 · 141 阅读 · 0 评论 -
算法4的C++实现———快速排序
一、快速排序简介 快速排序(Quick Sort)使用分治法策略。 它的基本思想是:选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 快速排序流程: (1) 从数列中挑出一个基准值。 (2) 将所有比基准值小的摆放在基准前面,...原创 2019-07-13 22:03:26 · 163 阅读 · 0 评论