
算法排序
Flypei
这个作者很懒,什么都没留下…
展开
-
排序算法之归并排序
1、迭代归并排序将两个数当做已经排好序,再进行归并排序;然后再将上面两个排好序的数据进行归并排序;依次类推,最后将所有数据归并排序。如下图所示: 2、归并排序demo#include <iostream>using namespace std;template <class T>void merge(T *initList, T *mergeList, int f, int s, int l);原创 2017-08-18 16:42:13 · 370 阅读 · 0 评论 -
算法排序之插入排序
1、插入排序有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将原创 2017-08-12 10:35:14 · 266 阅读 · 0 评论 -
算法排序之选择排序
1、选择排序选择排序是指每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。若想更直观的了解选择排序,可点击可视化选择排序了解。2、选择排序demo#include <stdio.h>const int n = 10;void selectSort(int *data, const int n);int main(int argc, const原创 2017-08-12 09:36:29 · 227 阅读 · 0 评论 -
算法排序之快速排序
1、快速排序是指选取最左的一个数为pivot(枢轴),然后从最左的下一个开始遍历一个大于pivot的数,在从最右的开始遍历一个比pivot小的数,最后再将二者交换,直至左边的迭代大于或等于右边的迭代,最后将最左的数与中间的交换。再对左半边和有半边进行递归。2、快速排序demo#include <iostream>using namespace std;const int n = 5;template原创 2017-08-14 11:28:04 · 349 阅读 · 0 评论 -
查找之折半二分法
1、折半二分法折半二分法是针对已经排好序的数据,效率比顺序查找快很多。比如2的8次方个数据最多只需要查找8次就能找到了,但是前提是此数据已经排好序了!2、折半二分法demo#include <iostream>using namespace std;const int n = 10;template <class T>void BSearch(T *data, T find, int left,原创 2017-08-14 17:17:47 · 281 阅读 · 0 评论