自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ainiybs的专栏

走走停停

  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 算法----约瑟夫环的简易实现

题目:用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。

2014-07-10 12:20:09 555

原创 字符串----找出字符串中第一个只出现一次字符

题目:找出字符串中第一个只出现一次的

2014-06-26 23:45:58 527

转载 linux内核学习----中断和中断处理程序

中断还是中断,我讲了很多次的中断了,今天还是要讲中断,为啥呢?因为在操作系统中,中断是必须要讲的..       那么什么叫中断呢, 中断还是打断,这样一说你就不明白了。唉,中断还真是有点像打断。我们知道linux管理所有的硬件设备,要做的第一件事先是通信。然后,我们天天在说一句话:处理器的速度跟外围硬件设备的速度往往不在一个数量级上,甚至几个数量级的差别,这时咋办,你总不能让处理器在那里傻等

2014-06-26 20:51:04 605

转载 linux内核学习----进程调度

调度就是通过调度程序的合理调度,实现系统资源的最大限度发挥作用。多进程的并发正是这样的效果。其实原理一点也不复杂,道理也一样简单:只要又可以执行的进程,那么就总是会有进程正在执行。但简单的问题也会复杂化,比如:我们买票为啥抱怨调度,归根接地感谢当年的人海战术(多说一句,其实现实的很多问题,一个人海战术解决所有,这战术中国人用起来最得心应手)。好么,一般系统中进程的数目总会比处理器的个数多,所以竞争

2014-06-26 17:44:11 522

原创 Partion方法的应用

快速排序算法是常见的排序算法的一种,其实现思想是一个给代

2014-06-25 23:57:33 2234

转载 linux内核学习----进程管理

进程和线程的概念我就不讲了。总之,你记着:内核调度的对象是线程,而不是进程。linux系统中的线程很特别,它对线程和进程并不做特别区分。进程的另外一个名字叫任务(task).我和作者一样,习惯了把用户空间运行的程序叫做进程,把内核中运行的程序叫做任务。      内核把进程存放在叫做任务队列(task list)的双向循环链表中,链表中的每一项都是类型为task_struct,名称叫做进程描述

2014-06-25 16:15:04 364

转载 linux内核学习----系统调用

Linux中,系统调用是用户空间访问内核的唯一手段,是内核唯一的合法入口。其他的一切调用均通过系统调用进行。       通常我们所说的应用程序接口(API),它们可以实现成一个系统调用,也可以通过多个系统调用实现,甚至无需使用系统调用。从程序员的角度看,它们只需与API进行交互,内核负责与系统调用交互,至于库函数以及应用程序是如何使用系统调用的,不在内核的关心之列。       系统调用

2014-06-25 15:42:02 366

转载 动态规划:从新手到专家

http://hawstein.com/posts/dp-novice-to-advanced.html点击打开链接动态规划:从新手到专家March 26, 2013作者:Hawstein出处:http://hawstein.com/posts/dp-novice-to-advanced.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署

2013-11-21 16:36:39 442

转载 学习C语言编译过程

源地址:http://blog.csdn.net/pengdonglin137/article/details/8546105       我们用文本编辑器或者IDE写成的只是源代码,需要通过编译将其转换为可以在机器上面运行的二进制代码。从源代码到二进制代码中间经历了什么样的过程呢。概括来讲,这个过程就是编译——链接。名词解释      编译:把

2013-11-20 11:27:12 453

原创 PAT之1014-福尔摩斯的约会

#include using namespace std;const static int Lenght = 61;const string week_name[7] = {"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};inline bool isWeek(char c) /* 判断是否属于表示 周 的字符 */{ ret

2013-11-13 15:26:48 680

原创 查找绝对值等差数列

不晓得题目是否合适,百度的笔试中有这样一道题目:一个数列,相邻元素差值的绝对值为1,比如4323456543,现在在这个数列中查找一个数字,如果找到,打印该数字位置,没有找到,则打印not found。在序列中查找元素,如果序列有序,可以采用折半查找等方法,只与数列的规模N有关系,但因为数列摆动,比如3,出现在3个位置,所以不能缩小查找的规模,只能遍历完整个数组。所以最基本的想法是从头至尾便利

2013-11-09 15:45:54 733

原创 两个数的最大公约数

笔试面试题目中经常会遇到两个数最大公约数的问题,一种比较流行的方法是,用较大者除以较小者,若整除,较小者为最大公约数,若有余数,则求余数与较小者的最大公约数,递归实现。它是基于这样一个事实,即若x = k*m;y=k*n;那么y/x = n/m; y%x = k*(m%n);即x和y%x也有最大公约数k.这种方法很容易编程实现,但是一个不足时计算机计算取模运算相当于除法,很耗时间,于是有了进一步改

2013-11-08 22:47:29 424

原创 大数加法和大数乘法

面试或者笔试的时候经常会遇到这样的题目,比如写一个计算两数之和的程序。如果对于加数与和有限制,比如说,保证不会溢出,那么还好,如果没有限制,很可能就会调入陷阱,因此靠考虑溢出的情况,这个时候就需要考虑用字符串模拟加法运算了,乘法也是一样。用字符串模拟加法运算其实很简单,两个数相加,和的长度最长为较长字符串+1,然后对应位分别相加,注意加上进位,后期可以补上代码。这里主要说下大数乘法。大数乘

2013-11-08 21:41:32 706

原创 排序算法之归并排序

归并思想是将问题分解为更小的、同性质的子问题,求解子问题,然后合并子问题的解得到原问题的解。经历一个分界、求解、合并的过程。因此上归并排序为将数组分为若干个子数组,分别排序,然后合并子数组的排序结果,即合并两个排序的数组,相关代码如下:void MergeAubArray(int res[], int a[], int left, int mid, int right) //子数组以mid

2013-11-08 21:09:31 359

原创 排序算法之堆排序

由于前面的排序算法均存在多余比较的行为,那么如果可以记住比较的结果,效率可以进一步提高,所以就出现了堆排序。堆排序的一般步骤是,将数组构造成一个最大堆,然后交换对顶元素和数组最末端的元素,这样就破坏了最大堆的性质(每一个节点的值均大于左右子节点的值),于是需要重新调整,使得堆成为最大堆,堆排序可以在O(1)时间内获取元素的最大值。核心算法在于维护堆的性质。void AdjustHeap(i

2013-11-08 20:55:14 385

原创 排序算法之shell排序

希尔排序和快速排序有些类似,也是基于分组的意识,不同的是,希尔排序分组的基准是步长,步长相等的元素参与排序,再缩小步长,由于此时数组已经基本有序,所以有了较为快的执行速度,当步长为1时,对整个数列排序。算法要求最后一步步长必须为1,此时shell排序退化为冒泡排序。关于如何选择步长,可以参考其他的资料,后续补充。void EX_SortShell(int a[], int n){

2013-11-08 20:44:35 432

原创 排序算法之快速排序

快速排序是一种不稳定的排序算法,它的基本思想是,以某个元素为基准,将所有大于等于它的值放在右边,小于它的值放在左边,这样数组就被分为两部分,递归对这两部分进行快速排序,而单个元素我们认为是已经排好序的。这是一种归并思想,当然在最后一步,合并,我们什么也没有做也不用做。每一次排序都有一个元素被放在正确的位置,所以该算法总是会结束。因此,算法的精髓在于如何选择基准并分为两个子数组。选择基准有很多种方式

2013-11-08 20:15:57 428

原创 排序算法之插入排序

插入排序思想和选择排序一样单纯,一个有序区和一个无序区,初始状态都是无序的,然后每次从无序区取出一个元素,插入有序区他应该在的位置

2013-11-08 14:24:22 340

原创 排序算法之选择排序

选择排序的思想很单纯,将数组分为有序区和无序区,每次从无序区中选择一个最大或者最小的元素,放在有序区,直至无序区元素个数为0,此时,数组排序完成。版本一:void EX_SortSelect(int a[], int n){ for (int j = 0; j < n; ++j) { int minDir = j; for (int i = j

2013-11-08 11:33:00 350

原创 排序算法之冒泡排序

冒泡算法的实现思想比较简单,从待排序数组的首个元素开始扫描数组,若遇到当前元素大于他的后继元素,则交换两者顺序(降序的话判断条件相反),每一遍遍历均有一个最小的元素排至前端,就想冒泡一样,较轻的元素慢慢升上来。时间复杂度为O(n^2),空间复杂度为O(1)版本一:基础的冒泡排序void EX_SortBubble(int a[], int n){    for (int i =

2013-11-08 11:12:21 508

原创 五人过河问题的分析

一、问题描述:有一家人共5口需要在夜里过河,河上只有一条船,每次最多同时可以有两个人同时过河。由 于在夜中,必须使用手电筒来照明。且目前只有一支手电,并且该手电还可以供电30mins。已知5个人(设为A,B,C,D,E)过河的时间分别为(单 位:min):1、3、6、8、12。求5个人在30mins之内过河的方法。 二、一些分析:       直觉情况下,因为每次必须有人把船摇回来

2012-05-23 20:40:47 4239

一个java字体选择器

自己编写的一个java的字体选择器,和大家分享

2011-08-15

空空如也

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

TA关注的人

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