上一页 1 ··· 5 6 7 8 9
摘要: 直接插入排序的基本操作是将一个记录插入到已经排序好的有序表中(最开始假设第一个数为已排序),从而得到一个新的、记录数增1的有序表。 稳定性:直接插入排序是稳定排序 复杂度: 最好: O(n) 最差: O(n^2) 平均: O(n^2) 辅助空间:O(1) 下面是根据书上用L[0]存储哨兵位置而写的直 阅读全文
posted @ 2015-12-09 02:50 tan90丶 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 简单选择排序的基本思想是每一趟在n-i+1(i=1,2,3...n-1)个记录中选取关键字最小的记录作为有序序列的第i个记录 稳定性:简单选择排序是不稳定排序 时间复杂度:最好 O(n^2) 最坏 O(n^2) 平均 O(n^2) 辅助空间:O(1) 给定排序要用到的swap函数: void swa 阅读全文
posted @ 2015-12-08 21:20 tan90丶 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序为止 稳定性:冒泡排序是稳定排序 时间复杂度: 最好:O(n) 最差:O(n^2) 平均:O(n^2) 辅助空间:O(1) 以下的所有代码都要用到的swap函数在此给出 /*实现swap功能*/ void 阅读全文
posted @ 2015-12-08 20:47 tan90丶 阅读(236) 评论(0) 推荐(0) 编辑
摘要: POJ 1426 Find The Multiple 题意:给定一个整数n,求n的一个倍数,要求这个倍数只含0和1 参考博客:点我 解法一:普通的BFS(用G++能过但C++会超时) 从小到大搜索直至找到满足条件的数,注意最高位一定为1 假设 n=6 k即为当前所求的目标数,不满足条件则进一步递推 阅读全文
posted @ 2015-12-05 20:27 tan90丶 阅读(219) 评论(0) 推荐(0) 编辑
摘要: POJ 1321 题目大意:给定一棋盘,在其棋盘区域放置棋子,需保证每行每列都只有一颗棋子。 (注意 .不可放 #可放) 解题思路:利用DFS,从第一行开始依次往下遍历,列是否已经放置棋子用一个数组标记,直至放完要求的棋子数。 /*POJ 1321 棋盘问题 DFS*/ #include <cstd 阅读全文
posted @ 2015-12-04 23:48 tan90丶 阅读(150) 评论(0) 推荐(0) 编辑
摘要: HDU 1010 题目大意:给定你起点S,和终点D,X为墙不可走,问你是否能在 T 时刻恰好到达终点D。 参考: 奇偶剪枝 奇偶剪枝简单解释: 在一个只能往X、Y方向走的方格上,从起点到终点的最短步数为T1,并记其他任意走法所需步数为T2,则T2-T1一定为偶数。 即若某一点到终点的最短步数为T1, 阅读全文
posted @ 2015-12-04 21:41 tan90丶 阅读(137) 评论(0) 推荐(0) 编辑
摘要: HDU 1312 题目大意: 一个地图里面有三种元素,分别为"@",".","#",其中@为人的起始位置,"#"可以想象为墙,然后.为可以走的空地,求人可以走的最大点数。 解题思路:从起点开始,起点的四个方向满足条件的点分别入队(放置重复入队,需只要一入队就标记已访问而不是取出时再进行标记),直至队 阅读全文
posted @ 2015-12-04 21:02 tan90丶 阅读(217) 评论(0) 推荐(0) 编辑
摘要: HDU 1312 题目大意: 一个地图里面有三种元素,分别为"@",".","#",其中@为人的起始位置,"#"可以想象为墙,然后.为可以走的空地,求人可以走的最大点数。 解题思路:从起点开始,从4个方向进行递归遍历(已经访问的点进行标记)。 /*HDU 1312 Red and Black 入门搜 阅读全文
posted @ 2015-12-04 20:02 tan90丶 阅读(144) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9