自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

思考,思考,再思考~

每天学习一个新知识,写一个小程序...

  • 博客(14)
  • 资源 (5)
  • 收藏
  • 关注

转载 STL系列之五 priority_queue 优先级队列

本文系转载,原文地址:http://blog.csdn.net/morewindows/article/details/6976468priority_queue 优先级队列是一个拥有权值概念的单向队列queue,在这个队列中,所有元素是按优先级排列的(也可以认为queue是个按进入队列的先后做为优先级的优先级队列——先进入队列的元素优先权要高于后进入队列的元素)。在计算机操作系统中,优先级队

2012-07-31 16:20:58 891

转载 STL系列之四 heap 堆

本文系转载,原文地址:http://blog.csdn.net/morewindows/article/details/6967409下面再介绍STL中与堆相关的4个函数——建立堆make_heap(),在堆中添加数据push_heap(),在堆中删除数据pop_heap()和堆排序sort_heap():头文件 #include 下面的_First与_Last为可以随机访问的迭代器(

2012-07-31 16:16:39 1053

原创 堆、堆排序、优先队列

大根堆的实现注意:数据存储在heap数组中,而且是从下标1开始存储的#ifndef _MAX_HEAP_#define _MAX_HEAP_#include #include using namespace std;const int HeapIncreMent = 20; templateclass MaxHeap {public: Ma

2012-07-29 19:39:25 1174

原创 快速排序的应用

1、把序列中的正负数分开举例:序列:0,2,-1,4,-2,-3,6,7,-9,10处理好的序列:-9 -3 -1 -2 4 2 6 7 0 10注意:仅仅把正负数分开就好,正数和负数里面不要求次序不要求排序,这里遍历一遍序列就可以了,时间复杂度为O(n)//应用一:把序列中的正负数分开算法#include using namespace std;const

2012-07-28 23:45:38 3631

原创 快速排序的实现

最简单的快排void QSort(int arr[],int low,int high){ int first = low; int last = high; if (low>=high) return; //选择分割 int key = SelectPivot(arr,low,high);//选择选取序列的第一个元素作为基准 //一次分割 while

2012-07-28 22:55:29 1085

转载 面向对象和面向过程的区别

面向过程一种以事件为中心的编程思想,以功能(行为)为导向,按模块化的设计,就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。   面向对象一种以事物为中心的编程思想,以数据(属性)为导向,将具有相同一个或者多个属性的物体抽象为“类”,将他们包装起来;而有了这些数据(属性)之后,我们再考虑他们的行为(对这些属性进行什么样的操作),是把构成问题事

2012-07-28 14:44:13 1942

原创 三种快速排序以及快速排序的优化

1、快速排序的基本思想:   快速排序使用分治的思想,通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关键字小。之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。2、快速排序的三个步骤:(1)选择基准:在待排序列中,按照某种方式挑出一个元素,作为 "基准"(pivot)(2)分割操作:以该基准在序列中的实际位置,把序列分成两个子序列。此时,在

2012-07-25 16:50:27 52006 26

原创 常见错误

1、VS2008 stack overflow测试递归程序,当递归次数很大时,超过了VS2008默认的栈空间大小,导致了stack overflow解决方法:这里仅仅为了测试程序,所以只改变编译器的设置项目-属性-配置属性-链接器-系统-设置栈堆保留大小和栈堆提交大小(单位为字节,设置一个比较大的数即可)2.switch括号中的表达式的值的限制switch括号中

2012-07-25 10:59:17 1764

原创 随机数的产生

产生[0,100)间的整数#include #include using namespace std;void main(){ srand((unsigned)time(NULL)); for (int i = 0;i < 10;i++) { int num=rand()%100;//设置区间 cout<< num<<endl; } system

2012-07-24 22:21:39 977 4

原创 二分查找的扩展

问题:1、给定一个循环数组arr,求循环有序数组的分界点2、给定一个循环数组arr,求任意一个i使得arr[i]等于v,不存在则返回-1。~~~~~~~~~~~~~~~~~~~~~~~循环数组arr:将有序数组向左循环移位,形成的数组为循环数组即,有两个连续的子序列组成,但是整体上无序举例:有序数组:arr[8] = {2,3,3,3,3,5,6,7};形成

2012-07-21 19:23:04 1228 1

原创 二分查找算法

要解决的问题:1,给定一个有序(不降序)数组arr,求任意一个i使得arr[i]等于v,不存在则返回-1。2,给定一个有序(不降序)数组arr,求最小的i使得arr[i]等于v,不存在则返回-1。3,给定一个有序(不降序)数组arr,求最大的i使得arr[i]等于v,不存在则返回-1。4,给定一个有序(不降序)数组arr,求最大的i使得arr[i]小于v,不存在则返回-1。5,

2012-07-20 22:04:25 1334 2

原创 编程珠玑_第二章_啊哈 算法

三个问题:一、给出一个顺序文件,它最多包含40亿个随机排列的32位整数。       问题:找出一个不在文件中的32位整数。       注意:题目中没有说,这40亿个数是否是含有重复的数据       条件限制:       1、如果有足够的内存,如何处理?       2、如果内存仅有上百字节(内存不足)且 可以用若干外部临时文件,如何处理?二、类似字符串循环移位

2012-07-15 22:20:32 4377

转载 解决电脑常见问题

去掉桌面快捷方式下面的阴影鼠标在桌面空白处右击,依次单击“属性”—“桌面”—“自定义桌面”—“Web”选项,将“网页”栏中的“当前主页”以及“http//…………”等所有各项前面的勾全部掉取消选中,并将下面“锁定桌面项目”前面的勾也去掉取消选中,确定完成设置。这个办法应当是 Windows 系统最正宗的解决,但有时也无效,呵呵。该办法对64位的几个系统似乎都无效。

2012-07-10 08:55:54 857

原创 读取文件,提取数字,求总和

读取文件,提取数字,求总和文件内容格式第 0 组个数:9, Time: 0.037400第 1 组个数:585, Time: 0.430600第 2 组个数:27, Time: 0.023400目标0.037400 + 0.430600 + 0.023400 = ?代码#include #include #include #include

2012-07-09 17:40:25 1696

基于链表的快排,只改变结点内容,但不改变链表指向

基于链表的快排,只改变结点内容,但不改变链表指向 C++实现

2013-09-11

c++实现基于链表的快排,改变链表指向,不改变结点指针

基于链表的快排,改变链表指向,不改变结点指针、c++代码

2013-09-11

算法合集之《后缀数组——处理字符串的有力工具》

后缀数组的倍增算法和DC3算法的实现以及不可重叠重复子串的问题,很详细的资料

2013-07-13

指针与C程序效率教学探究(指针与数组效率对比)

指针与C程序效率教学探究(指针与数组效率对比),介绍了指针比数组好的原因

2013-06-04

C++写的各种QSort

C++写的各种QSort,还有效率对比代码..

2012-07-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除