自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

转载 C++程序模板

#include #include  using namespace std;

2014-10-27 13:14:43 372

转载 24 快速排序法_3

说明 之前说过轴的选择是快速排序法的效率关键之一,在这边的快速排序法的轴选择方式更加快了快速排序法的效率,它是来自演算法名书 Introduction to Algorithms 之中。 解法 先说明这个快速排序法的概念,它以最右边的值 s 作比较的标准,将整个数列分为三个部份, 一个是小于s的部份,一个是大于s的部份,一个是未处理的部份,如下所示 :

2014-10-20 17:12:18 453

转载 23 快速排序2

说明在快速排序法(一)中,每次将最左边的元素设为轴,而之前曾经说过,快速排序法的 加速在于轴的选择,在这个例子中,只将轴设定为中间的元素,依这个元素作基准进行比较, 这可以增加快速排序法的效率。 解法在这个例子中,取中间的元素s作比较,同样的先得右找比s大的索引 i,然后找比s小的 索引 j ,只要两边的索引还没有交会,就交换 i 与 j 的元素值,这次不用再进行轴的交换了

2014-10-20 16:27:03 288

转载 22 快速排序(1)

说明:快速排序法(quick sort)是目前所公认最快的排序方法之一(视解题的对象而定) ,然虽快速排序法在最差状况下可以达O(n2 ),但是在多数的情况下,快速排序法的效率表现是相当不 错的。快速排序法的基本精神是在数列中找出适当的轴心,然后将数列一分为二,分别对左边与右边 数列进行排序,而影响快速排序法效率的正是轴心的选择。这边所介绍的第一个快速排序法版本, 是在多数的教科书上所提及的版

2014-10-20 16:20:29 405

转载 21 改良的选择排序--堆排序

说明:选择排序法的概念简单,每次从未排序部份选一最小值,插入已排序部份的后端,其时间要主 花费于在整个未排序部份寻找最小值, 如果能让搜寻最小值的方式加快, 选择排序法的速率也 就可以加快,Heap排序法让搜寻的路径由树根至最后一个树叶,而不是整个未排序部份,因而 称之为改良的选择排序法。 解法:Heap排序法使用Heap Tree(堆积树) ,树是一种资料结构,而堆积树是一个二元树,也就每是

2014-10-20 15:56:25 346

转载 20 改进的冒泡排序--双向冒泡排序

说明 请看看之前介绍过的气泡排序法: for(i = 0; i  for(j = 0; j  SWAP(number[j+1], number[j]); flag = 1; } } }   事实上这个气泡排序法已经不是单纯的气泡排序了,它使用了旗标与右端左移两个方法来改进排序的效能,而Shaker排序法使用到后面这个观念进一步

2014-10-20 15:32:01 387

转载 19 Shell 排序法 - 改良的插入排序

说明 插入排序法由未排序的后半部前端取出一个值, 插入已排序前半部的适当位置, 概念简单速但 度不快。  排序要加快的基本原则之一,是让后一次的排序进行时,尽量利用前一次排序后的结果,以加 快排序的速度,Shell排序法即是基于此一概念来改良插入排序法。 解法 Shell排序法最初是D.L Shell于1959所提出,假设要排序的元素有n个,则每次进行插入排序时

2014-10-20 14:30:40 310

转载 18 m 元素集合的 n 个元素子集

说明:假设有个集合拥有m个元素,任意的从集合中取出n个元素,则这n个元素所形成的可能子集有 那些? 解法 假设有5个元素的集点,取出3个元素的可能子集如下: {1 2 3}、{1 2 4 } 、{1 2 5}、{1 3 4}、{1 3 5}、{1 4 5}、{2 3 4}、{2 3 5}、{2 4 5}、 {3 4 5}   这些子集已经使用字典

2014-10-20 14:16:56 576

转载 17 约瑟夫排列

说明:据说着名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人到,于是决定了 一个自杀方式,41个人排成一个圆圈,由第1个人 开始报数,每报数到第3人该人就必须自杀, 然后再由下一个重新报数,直到所有人都自杀身亡为止。 然而Josephus 和他的朋友并不想遵从,Josephus要他

2014-10-20 11:04:51 545

转载 16 因式分解

因式分解基本上就是使用小于输入数的数值当作除数,去除以输入数值,如果可以整除就视为因数,要比较快的解法就是求出小于该数的所有质数,并试试看是不是可以整除,求质数的问题是另一个课题,请参考 Eratosthenes 筛选求 质数。

2014-10-20 10:15:23 376

转载 15 最大公因数、最小公倍数

说明:最大公因数使用辗转相除法来求,最小公倍数则由这个公式来求: GCD * LCM= 两数乘积 解法最大公因数可以使用递回与非递回求解

2014-10-20 09:34:54 837

转载 14 Eratosthenes 筛选求质数

说明除了自身之外,无法被其它整数整除的数称之为质数,要求质数很简单,但如何快速的 求出质数则一直是程式设计人员与数学家努力的课题, 在这边介绍一个着名的Eratosthenes求质 数方法。 解法首先知道这个问题可以使用回圈来求解,将一个指定的数除以所有小于它的数,若可以 整除就不是质数,然而如何减少回圈的检查次数?如何求出小于N的所有质数? 首先假设要检查的数是

2014-10-20 09:18:21 318

转载 13 费氏数列或叫斐波那契数列fibonacci

说明:斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)。

2014-10-17 16:03:21 741

转载 12 选择—插入—气泡 排序

说明选择排序(Selection sort)、插入排序(Insertion sort)与气泡排序(Bubble sort)这三个 排序方式是初学排序所必须知道的三个基本排序方式,它们由于速度不快而不实用(平均与最 快的时间复杂度都是O(n2)) ,然而它们排序的方式确是值得观察与探讨的。 解法 选择排序 将要排序的对象分作两部份,一个是已排序的,一个是未排序

2014-10-17 15:37:26 331

转载 11 得分排序

说明假设有一教师依学生座号输入考试分数, 现希望在输入完毕后自动显示学生分数的排,行 当然学生的分数可能相同。 解法这个问题基本上要解不难,只要使用额外的一个排行阵列走访分数阵列就可以了,直接 使用下面的程式片段作说明:

2014-10-17 14:52:41 443

转载 10 craps赌博游戏

说明一个简单的赌博游戏,游戏规则如下:玩家掷两个骰子,点数为1到6,如果第一次点数 和为7或11,则玩家胜,如果点数和为2、3或12,则玩家输,如果和 为其它点数,则记录第一 次的点数和,然后继续掷骰,直至点数和等于第一次掷出的点数和,则玩家胜,如果在这之前 掷出了点数和为7,则玩家输。 解法 规则看来有些复杂,但是其实只要使用switch配合if 条件判断来撰写即可,小心不要

2014-10-17 14:23:53 884

转载 9 2(2n+1)魔方阵

说明方阵的维度整体来看是偶数, 但是其实是一个奇数乘以一个偶数, 例6X6如, 其中6=2X3, 我们也称这种方阵与单偶数方阵。 解法如果您会解奇数魔术方阵, 要解这种方阵也就不难理解, 首先我们n=2(2m+1)令,并将整 个方阵看作是数个奇数方阵的组合,如下所示:

2014-10-17 13:42:53 553

转载 8 洗扑克牌(乱数排列)

说明 洗扑克牌的原理其实与乱数排列是相同的,都是将一组数字(例如1 ~N )打乱重新排列,只 不过洗扑克牌多了一个花色判断的动作而已。 解法 初学者通常会直接想到,随机产生1~N 的乱数并将之存入阵列中,后来产生的乱数存入阵列 前必须先检查阵列中是否已有重复的数字,如果有这个数就不存入,再重新产生下一个数,运 气不好的话,重复的次数就会很多,程式的执行速度就很慢了,这不是一

2014-10-16 20:45:13 570

转载 7 超长整数运算(大数运算)

说明:基于记忆体的有效运用,程式语言中规定了各种不同的资料型态,也因此变数所可以表 达的最大整数受到限制,例如123456789123456789这样的 整数就不可能储存在long变数中(例 如C/C++等) ,我们称这为long数,这边翻为超长整数(避免与资料型态的长整数翻译混淆)或, 俗称大数运算。 解法一个变数无法表示超长整数,则就使用多个变数,当然这使用阵列

2014-10-16 20:25:59 493

转载 6 4N魔方阵

说明 与  奇数魔术方阵 相同,在于求各行、各列与各对角线的和相等,而这次方阵的维度是4的倍数。 解法 先来看看4X4方阵的解法:

2014-10-16 10:13:22 699

转载 5奇数魔方阵

说明 将1 到n( 为奇数) 的数字排列在nxn的方阵上,且各行、各列与各对角线的和必须相同,如下所 示:      解法  填魔术方阵的方法以奇数最为简单,第一个数字放在第一行第一列的正中央,然后向右 ( 左) 上 填,如果右(左)上已有数字,则向下填,如下图所示:            

2014-10-16 09:51:02 426

转载 4上三角、下三角、对称矩阵

说明 上三角矩阵是矩阵在对角线以下的元素均为0,即Aij = 0,i > j,例如:1234 50678 90010 11120

2014-10-16 09:09:55 3241

转载 3稀疏矩阵

说明:如果在矩阵中,多数的元素并没有资料,称此矩阵为稀疏矩阵(sparse matrix) ,由于矩阵在程 式中常使用二维阵列表示,二维阵列的大小与使用的记忆体空间成正比,如果多数的元素没有 资料,则会造成记忆体空间的浪费,为 此,必须设计稀疏矩阵的阵列储存方式,利用较少的记 忆体空间储存完整的矩阵资讯。 解法: 在这边所介绍的方法较为简单,阵列只储存矩阵的行数、列数与有资料的索引

2014-10-15 14:08:46 397

转载 2阿姆斯壮数也叫水仙花数

说明: 在三位的整数中,例如153可以满足13 + 53 + 33 = 153,这样的数称之为Armstrong数,试写出一 程式找出所有的三位数Armstrong数。 解法 Armstrong数的寻找,其实就是在问如何将一个数字分解为个位数、十位数、百位数......,这只 要使用除法与余数运算就可以了,例如输入 input为abc,则: a = input / 10

2014-10-15 13:50:47 514

转载 1蒙特卡洛法求PI

说明蒙地卡罗为摩洛哥王国之首都,该国位于法国与义大利国境,以赌博闻名。蒙地卡罗的 基本原理为以乱数配合面积公式来进行解题,这种以机率来解题的方式带有赌博的意味,虽然 在精确度上有所疑虑,但其解题的思考方向却是个值得学习的方式。

2014-10-15 13:39:35 536

转载 C++中的explicit

待续。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2014-03-19 10:33:02 269

转载 学习webkit中 RefPtr PassRefPtr Basics

待续。。。。。。。。。。。。。。。。。。。。。

2014-03-19 10:29:59 320

原创 Session的理解Cookie的理解

本文只对Session盒cookie稍稍了解了下,后续会持续更新。。。。一、Cookie        cookie 历来指就着牛奶一起吃的点心。然而,在因特网内,“Cookie”是小量信息,由网络服务器发送出来以存储在网络浏览器上,从而下次这位独一无二的访客又回到该网络服务器时,可从该浏览器读回此信息。这是很有用的,让浏览器记住这位访客的特定信息,如上次访问的位置、花费的时间或用户首选项

2014-03-11 22:29:12 382

转载 webkit简介

本文主要参照下面链接的原文,在此基础上加了自己的注解。供学习参考交流。出处:http://www.cnblogs.com/jyli/archive/2010/01/31/1660355.html 作者:李嘉昱  什么是WebkitWekbit是一个开源的Web浏览器引擎,也就是浏览器的内核。【Webkit---Apple的safari;     Geck

2014-03-11 21:39:18 532

空空如也

空空如也

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

TA关注的人

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