摘要: 快速排序 思路分析:快速排序采用双向查找的策略,每一趟选择当前所有子序列中的一个关键字作为枢纽轴,将子序列中比枢纽轴小的前移,比枢纽轴大的后移,当本趟所有子序列都被枢轴按上述规则划分完毕后将会得到新的一组更短的子序列,他们将成为下趟划分的初始序列集。 时间复杂度:最好情况(待排序列接近无序)时间复杂 阅读全文
posted @ 2019-06-17 18:18 SunnyLux 阅读(28340) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序 思路分析:冒泡排序属于交换类排序,对n个元素的序列,需要将n 1个元素与相邻元素进行比较,并根据实际需求,交换相邻两个元素,使较大元素和较小元素分别向两个方向聚集。 时间复杂度:最坏情况(初始序列逆序)时间复杂度为O(n2),最好情况(初始序列顺序)时间复杂度为O(n),平均情况时间复杂度 阅读全文
posted @ 2019-06-17 16:05 SunnyLux 阅读(1132) 评论(0) 推荐(1) 编辑
摘要: 希尔排序 思路分析:希尔排序又叫缩小增量排序,通过指定增量序列(尽量取素数且最小增量必须为1)对需要进行排序的数组进行分组,然后每组内部进行一次直接插入排序,不断缩小增量,直到增量为1排序完成。 时间复杂度:不同增量序列时间复杂度不同(希尔增量序列时间复杂度为O(n2)、帕斯增量序列时间复杂度为O( 阅读全文
posted @ 2019-06-17 15:22 SunnyLux 阅读(551) 评论(0) 推荐(1) 编辑
摘要: 折半插入排序 思路分析:通过对直接插入排序算法进行思考,我们可以知道插入排序方式首先需要为要插入的元素找到插入序列中合适的插入位置。通过折半((low+high)/2=mid)的方式,凭借一个mid来使得我们通过二分插入区的方式,不断缩小插入的区域,直到low high时,我们即可找到元素的插入位置 阅读全文
posted @ 2019-06-17 14:22 SunnyLux 阅读(2817) 评论(0) 推荐(3) 编辑
摘要: 直接插入排序 思路分析:在一个有序的数组中为要插入的元素找到指定的插入位置,但这个位置并不一定是最后排序结果中对应元素的最终位置。 时间复杂度:最坏情况(整个序列逆序时)时间复杂度为O(n2),最优情况(整个序列初始顺序,从大到小时)时间复杂度为O(n),平均情况时间复杂度为O(n2)。 源代码: 阅读全文
posted @ 2019-06-17 14:07 SunnyLux 阅读(1427) 评论(0) 推荐(1) 编辑
摘要: 2.1 修改指定窗口标题 2.2 判断窗口是否存在 2.3 判断窗口状态 2.4 获取窗口大小及左上角坐标 2.5 获取窗口客户区大小 2.6 获取窗口标题 2.7 获取窗口的父窗口句柄 2.8 获取窗口类名 2.9 获取鼠标指向的窗口句柄 2.10 由坐标获取窗口句柄 2.11 根据标题和类名查找 阅读全文
posted @ 2019-03-15 16:21 SunnyLux 阅读(3225) 评论(2) 推荐(3) 编辑
摘要: 题目 在一个以空格分割的字符串,如“asd asdasd sd asdasdas sdasdasdsdd”中,求最长字串长度,时间和空间复杂度尽可能最优 代码 C++ include using namespace std; int main() { int start=0,end=0,flag=0 阅读全文
posted @ 2019-03-15 15:57 SunnyLux 阅读(981) 评论(0) 推荐(0) 编辑
摘要: 1.1 判断本机是否联网 1.2 获取特殊文件路径 1.2.1 获取Program Files路径 1.2.2 获取桌面目录路径 1.2.3 获取开始菜单路径 1.2.4 获取用户程序组路径 1.2.5 获取文档模板路径 1.2.6 获取收藏夹路径 1.2.7 获取共享组件路径 1.2.8 获取我的 阅读全文
posted @ 2019-01-25 15:00 SunnyLux 阅读(1236) 评论(0) 推荐(0) 编辑
摘要: C++是C的扩展,C是C++的子集,C++包括C的全部特征、属性和优点。同时,增加了对面向对象编程的支持。 面向对象程序设计的基本特点:抽象性、封装性、继承性、多态性。 阅读全文
posted @ 2019-01-17 15:38 SunnyLux 阅读(1017) 评论(0) 推荐(0) 编辑