
算法
hwlfly
这个作者很懒,什么都没留下…
展开
-
归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plaincopy转载 2014-02-27 14:58:59 · 603 阅读 · 0 评论 -
LeetCode (1) Merge Sorted Array
题目:Given two sorted integer arrays A and B, merge B into A as one sorted array.Note:You may assume that A has enough space to hold additional elements from B. The number of elements initia原创 2014-08-15 16:10:43 · 581 阅读 · 0 评论 -
数据结构常用算法
//汉诺塔void Hanoi(int n,string A,string B,string C){ if(n == 1) cout"<<C<<endl; else{ Hanoi(n-1,A,C,B); cout"<<C<<endl; Hanoi(n-1,B,A,C); }} //递归实现int maxNUm(int num[],int n){ if(1 ==原创 2014-08-29 10:31:28 · 994 阅读 · 0 评论 -
堆/堆排序
原理参考:http://blog.youkuaiyun.com/morewindows/article/details/6709644/**********************************************************///堆插入void MinHeapfixup(int a[],int n,int num){ a[n] = num; int j,temp; te原创 2014-08-26 11:43:47 · 807 阅读 · 0 评论 -
求数组最大k个数的问题(堆的应用)
1 无顺序的一个数组求最大的k个数1)先用快速排序对数组排序在找前k个;2) 先建立k小顶堆,再扫描整个数组,堆顶为k个数中最小的数;/************************************///寻找在数组中最大的K个数 //小顶堆插入void constructHeap(int a[],int n,int value){ a[n] = value; i原创 2014-08-29 14:56:55 · 1518 阅读 · 0 评论 -
本文专注于<递归算法和分治思想>
作者:胖虎优快云博客地址:http://blog.youkuaiyun.com/ljphhj如果你觉得现在走的辛苦,那就证明你在走上坡路!本文的标题体现了本文主要要关注的知识点,我准备通过以下几部分来阐述我要说明的!"算法基本介绍"->"典型案例分析讲解"->"笔试题、面试题的案例"(本文介绍的所有算法实现代码,提供下载地址:http:转载 2014-05-29 20:07:02 · 1592 阅读 · 0 评论 -
二维有序数组中查找
二维有序数组(上下有序,左右有序)1 2 8 92 49 124 710 136 811 15中查找7bool Find(int *matrix, int rows,int columns,int key){ bool found = false; if (matrix != NULL && rows > 0 && columns > 0) { i原创 2014-03-07 21:48:05 · 878 阅读 · 0 评论 -
二分查找、折半查找
折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如果xa[n/2],则我们只要在数组a的右半部继续搜索x。算法时间复杂度为O(log n)。int b_find(const int num原创 2014-03-06 15:50:17 · 1807 阅读 · 0 评论 -
归并排序和快速排序(含完整源码)
转载自:http://blog.youkuaiyun.com/ns_code/article/details/20306991 前言 之所以把归并排序和快速排序放在一起探讨,很明显两者有一些相似之处:这两种排序算法都采用了分治的思想。下面来逐个分析其实现思想。归并排序 实现思想 归并的含义很明显就是将两个或者两个以上的有序表组转载 2014-03-06 13:45:03 · 797 阅读 · 0 评论 -
C\C++字符串转化成整数
1、字符串转化成整数int StrToInt(const char *ch){ bool m_stat = false; long num = 0; int m_flag = 1; assert(ch); while(isspace(*ch)) ++ch; if(*ch == '-') m_flag = -1; if(*ch == '-' || *ch == '+')原创 2014-03-06 13:36:09 · 1804 阅读 · 0 评论 -
轻松搞定面试中的二叉树题目
版权所有,转载请注明出处,谢谢!http://blog.youkuaiyun.com/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树转载 2014-08-31 12:47:36 · 690 阅读 · 0 评论