![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 81
yousir1988
这个作者很懒,什么都没留下…
展开
-
归并排序算法解析
归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。一次归并算法1、基本思路 设两个有序的子文件(相当于输入堆)放在同一向量中相邻的位置上:R[low..m],R[m+1..high],先将它们合并到一个局部的暂存向量R1(相当于输出堆)中,待合并完成后将R1复制回原创 2012-06-25 17:38:29 · 7225 阅读 · 3 评论 -
编程珠玑 第一章习题1
1.如果内存不紧缺,你将如果用一种语言(该语言可以使用库来表示和排序集合)来进行排序。a.c语言+qsort#include #include int intcomp(int *x, int *y){ return *x - *y;}int a[1000000];int main(){ int i, n=0; while (scanf("%d"原创 2012-06-25 22:41:05 · 615 阅读 · 0 评论 -
编程珠玑 第一章解析
问题:输入:一个最多包含n个正整数的文件,每个数都小于n(n=1000W)。如果在输入文件中有任何整数重复出现就是致命错误。没有其他数据与该整数相关联。输出:按升序排列的输入整数的列表。约束:最多有(大约)1 MB的内存空间可用,有充足的磁盘存储空间可用。运行时间最多几分钟,运行时间为10秒就不需要进一步优化了。方法一:归并排序。(耗时间) 归并排序需把数据全部读原创 2012-06-25 20:27:37 · 1037 阅读 · 1 评论 -
编程珠玑 第一章习题解答
4.生成[0,n)的之间k个不重复的随机整数。#include#include#include#includeusing namespace std;const int N = 10000000;const int K = 10000000;int randint( int l, int r ){ return rand() % ( r-l )原创 2012-06-25 23:14:53 · 2482 阅读 · 0 评论 -
程序员面试宝典 第5章:程序设计基本概念
再过两个多月就要面临找工作的压力了,再这个暑假,好好地给自己充下电,让自己能轻松面对校园招聘。不多说了,直接记录下自己所学的知识点吧。 5.1 赋值语句 int i=i;这语句是合法的,变量一声明就可见的,而且是一个未定义的值; x=x&(x-1);这语句用于判断x中“1”的个数 5.2 i++ a int arr[]={6,7,8,9,原创 2012-07-15 20:33:36 · 726 阅读 · 0 评论 -
最短过桥时间
原是4人过桥,ABCD要单独过桥分别需要用时1分、2分、5分、10分,过桥需要灯(只有一盏),一次只能2人一起过(意味着需要有人送灯回来),过桥时间已用时多的人为准,你如何设计一个方案,让用的时间最少。 问题分析:A和B先过,A回来,CD再过,B回来,AB第二次过。17秒完成! 用C语言拓展成n人过桥,过桥时间自定原创 2012-07-26 11:01:09 · 4444 阅读 · 0 评论 -
求一个字符串中连续出现次数最多的子串
/* Author: Mcdragon Date: 15-07-11 21:17 Description: 求一个字符串中连续出现次数最多的子串. 基本算法描述: 给出一个字符串abababa 1.穷举出所有的后缀子串 substrs[0] = abababa; substrs[1] = bababa;转载 2012-07-31 10:18:39 · 702 阅读 · 0 评论