【算法blog】
Always__
这个作者很懒,什么都没留下…
展开
-
排序算法总结
排序算法总是每个人必须掌握的,面试,笔试都会用到,今天又复习了一遍,分享给大家。 算法分析: 1. 冒泡排序: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有原创 2015-04-25 16:02:27 · 448 阅读 · 0 评论 -
【DS】堆操作及其应用
堆数据结构是一种数组对象,它可以被视为一棵完全二叉树结构。 堆结构的二叉树存储是 最大堆:每个父节点的都大于孩子节点。 最小堆:每个父节点的都小于孩子节点。 代码如下: #include #include #include using namespace std; //最大堆:每个父节点的值都大于孩子节点 //最大堆:每个父节点的值都小于孩子节点 //仿函数来确定创建大堆还是小堆原创 2016-06-04 22:33:24 · 572 阅读 · 0 评论 -
【DS】哈希表实现
哈希表的介绍和扩展请查看这篇文章:http://blog.csdn.net/always__/article/details/51584446 基于线性探测,二次探测的哈希表结构,实现字典查询。 代码如下:#pragma once #include #include using namespace std; ////命名空间First--线性探测法 //namespace First原创 2016-06-04 16:28:05 · 515 阅读 · 0 评论 -
【排序大餐系列】冒泡,快排(更新中...)
关于冒泡排序,我今天写完后在VS2008上运行出现如下问题: 程序如下:#include using namespace std; void Select_sort(int *arr,int len) { int temp; for(int i=0;i<=len-1;i++) { for(int j=0;j<=len-i-1;j++) { if(arr[j]>arr原创 2015-04-24 15:39:53 · 2412 阅读 · 0 评论 -
【DS】数据结构--二叉树实现
最近开始复习数据结构,感觉脑子不好使,特此记录一下,以便日后查看,也希望能给大家一些帮助! 类定义和一些函数接口: template struct BinaryTreeNode { BinaryTreeNode(T data) :_data(data), _left(NULL), _right(NULL) {} BinaryTreeNode* _left;原创 2016-04-23 17:22:17 · 701 阅读 · 0 评论 -
腾讯面试题--生成格雷码
vector getGray(int n) { vector arr(int(pow(2,n))); if (n == 1) { arr[0] = "0"; arr[1] = "1"; return arr; } vector last = getGray(n - 1); for (int i = 0; i < last.size();++i) { arr[i]原创 2016-04-09 11:36:40 · 420 阅读 · 0 评论 -
PAT数素数
题目描述 令Pi表示第i个素数。现任给两个正整数M 输入描述: 输入在一行中给出M和N,其间以空格分隔。 输出描述: 输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。 输入例子: 5 27 输出例子: 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89原创 2015-07-01 15:34:51 · 687 阅读 · 0 评论 -
字符串右移函数
编写一个函数,作用是把一个 char 组成的字符串循环右移 n 个。比如原来是“abcdefghi” 如果 n=2,移位后应该是“hiabcdefgh” 分析:将字符串相加如:abcdefghi----》abcdefghiabcdefghi。这样可以解决右移次数较少的情况。 代码如下:char* rightloopmove(char *p,unsigned int steps,int n)原创 2015-06-28 00:34:05 · 752 阅读 · 0 评论 -
给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。
输入第1行给出正整数T( 随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。 输出描述: 对每组测试用例,在一行中输出“Case #X: true”如果A+B>C, 否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。 代码如下:#include using namespace std; int main() { int n; i原创 2015-06-25 01:16:00 · 6133 阅读 · 3 评论 -
直插,折半,二路,希尔排序
根据待排序的记录数量的不同可将排序方法分为内部排序和外部排序。 内部排序:指待排序记录存放在计算机随机存储器中进行的排序过程。(数据加载在内存中的排序) 外部排序:指待排序记录的数量很大,以致内存一次不能全部容纳全部记录,在排序过程中需对外存进行访问的排序过程。 下面我将罗列几个算法,希望朋友们能指出其中错误,互相交流。 #include using namespace std; #def原创 2015-06-16 13:18:01 · 734 阅读 · 0 评论 -
一致性哈希算法分析
转自:http://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到转载 2016-06-05 15:14:51 · 571 阅读 · 0 评论