数据结构与算法
刘清涛
这个作者很懒,什么都没留下…
展开
-
快速排序
摘自 数据结构与算法(C++描述)转载 2018-05-09 14:45:21 · 87 阅读 · 0 评论 -
二分法查找
二分法查找前提:数据是已经从小到大排好序的实现原理:取中间的数与要查找的数X做对比,比X到则向后查找,反之则向前查找。#include<iostream>#include<cstdlib>#include<cstdio>#include<vector>using namespace std;#define NOTFOUND -1template<...原创 2018-07-06 09:49:28 · 67 阅读 · 0 评论 -
冒泡排序
冒泡排序实现原理: 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。代码:template<typename Object> void bub...原创 2018-07-06 09:55:00 · 75 阅读 · 0 评论 -
二分法查找
二分法查找前提:数据是已经从小到大排好序的实现原理:取中间的数与要查找的数X做对比,比X到则向后查找,反之则向前查找。#include<iostream>#include<cstdlib>#include<cstdio>#include<vector>using namespace std;#define NOTFOUND -1template<...原创 2018-07-06 09:55:40 · 64 阅读 · 0 评论 -
插入排序
插入排序插入排序由N-1趟排序组成。对于p=1到N-1趟,插入排序保证从位置0到位置p上的元素为已排序状态。适合小规模数据排序。操作步骤: (1) 设置监视哨tmp,将待插入记录的值赋值给tmp; (2) 设置开始查找的位置j; (3) 在数组中进行搜索,搜索中将第j个记录后移,直至tmp≥r[j-1].key为止; (4) 将tmp插入r[j]的位置上。图解: ...原创 2018-07-06 09:58:41 · 57 阅读 · 0 评论 -
希尔排序
希尔排序谢尔排序也叫缩小增量排序。操作步骤: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量 dt=1( dt<dt-1 < …<d2<d1),即所有记录放在同一组中进行直接插入排序为止。 比较相隔较远距离(...原创 2018-07-06 10:09:26 · 137 阅读 · 0 评论