人生难得是欢聚,唯有别离多
摘要: 1.希尔排序 希尔排序是对直接插入排序的一种改进,基本思想是隔一定间隔取元素组成一组元素,然后对这组元素进行直接插入排序,所有元素排序完一次后。间隔减少,再进行同样的操作,直到间隔变为1,这时就是直接插入排序了,因为经过前面的步骤,元素大多数都是有序了,直接插入排序,对有序序列的效率是很高的。 2. 阅读全文
posted @ 2020-04-12 15:23 对愁眠 阅读(261) 评论(0) 推荐(1) 编辑
摘要: 1.八皇后问题 在 8×8 格的棋盘上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 2.思路 这问题很适合用回溯的思想解决。首先在第一行第一列放第一个皇后,然后在第二行第一列放第二个皇后,这时对第二个皇后的列和两个斜线的方向进行判断,看是否能攻 阅读全文
posted @ 2020-04-11 14:45 对愁眠 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 1.插入排序 插入排序的原理很简单,就是将待排序的元素和已排序好的元素进行比较,找到合适的位置进行插入。 例子:2 1 5 3 6 4(升序排序) 1)将第一个元素看成已排序好的序列,从第二个元素开始比较,先用一个临时变量 temp 存放第二个元素的值。开始比较,1 比 2 小,所以把2赋值给1的位 阅读全文
posted @ 2020-04-09 20:38 对愁眠 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 1.问题:给出一个字符串,找出其中无重复字符最长子串 abcbc 最长无重复子串是abc 长度是3 2.方法一,暴力法 我们可以找出每一个子串,然后找到最长的无重复字符的子串就可了,方法简单粗暴。 代码如下: 1 #include<stdio.h> 2 #include<string.h> 3 // 阅读全文
posted @ 2020-04-02 15:43 对愁眠 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 1.堆排序 堆排序是用堆这种数据结构所设计的一种排序算法,近似一颗完成二叉树,同时具有一个特性,父节点的值大于(小于)子节点的值。 堆分两种,父节点比子节点大的叫最大堆,父节点比子节点小的叫最小堆 下面就是一个最大堆 2.堆排序步骤 以最大堆为例,假设有n个元素, 1)构造最大堆 2)交换根节点与第 阅读全文
posted @ 2020-04-01 16:47 对愁眠 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 1.归并排序 归并排序采用的思想是分而治之,简单来说,就是将一个待排序的序列,不断划分,最终得到有序的序列(只剩一个元素的序列就是有序序列),然后将这些有序的序列进行合并,第一次合并将只有一个元素序列的有序子序列进行合并,就会得到有两个元素序列的有序子序列,然后进行第二次合并,将有两个元素序列的有序 阅读全文
posted @ 2020-03-29 15:34 对愁眠 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 1.五子棋是一比较容易写的小游戏,很适合用来练手,作为练手,不必弄太复杂,所以就不弄电脑AI了,只是玩家之间的对战(AI下次再写)。 2.五子棋的难点在于如何判断输赢,其实很简单。每次下棋,就判断该棋子的四个方向,横竖方向,还有两个对角线(分成四个部分,左上,左下,右上,右下)方向是否满足五个棋子。 阅读全文
posted @ 2020-03-23 14:48 对愁眠 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 1.之前介绍的冒泡和选择排序都是适用于少量的数据,一旦数据量比较大,效率就很低的,因为他们的时间复杂度是O(n²)。 2.今天介绍一种算法不是很难,速度很快的排序算法,快速排序。 一 快速排序 1)通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后 阅读全文
posted @ 2020-03-23 14:04 对愁眠 阅读(297) 评论(0) 推荐(1) 编辑
摘要: 1.选择排序:首先在未排序序列中找到最小或最大元素,存放到排序序列的起始位置,再从剩余未排序元素中继续寻找最小或最大元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕 2.选择排序和冒泡排序原理差不多,都是相邻两个元素进行比较,然后选择最大或最小的出来,但选择排序是记录最大或最小元素 阅读全文
posted @ 2020-03-21 13:20 对愁眠 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 1.排序算法在编程中必不可少,也很常用,是必须要学的。 2.就我本人看来,最适合练习各种算法的语言非C语言不可。C语言本身语法简单直接明了,没有太多的封装,很适合描述算法的各步骤。 一 .冒泡排序 1)冒泡排序在排序算法中比较常见,也很简单,适合数据量不是很大的程序,适合日常使用。 2)冒泡排序的原 阅读全文
posted @ 2020-03-20 10:36 对愁眠 阅读(287) 评论(0) 推荐(0) 编辑