修改Ubuntu启动项

由于重装系统导致之前用wubi安装的ubuntu也随之消逝。重装完win7之后,打算再把之前装的ubuntu装回去,由于wubi安装ubuntu比较简单,抱着学习的态度,这次打算直接安装。

折半查找

#折半查找
折半查找即二分查找 ,适用于有序顺序表

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功,否则利用中间位置记录将表分成前后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,查找成功,或直到子表不存在为止,此时查找不成功。

算法要求:

  1. 必须采用顺序存储结构
  2. 必须按关键字大小有序排列

浅谈C/C++中文件操作

#fopen
函数功能:打开一个文件
函数原型:FILE fopen(const char path,const char *mode);
所需库:
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。

一般而言,打开文件后会做一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()之后要作错误判断及处理。

单链表

问题1:

如何判断一个单链表中是否存在回路?

解析:

如果一个单链表中存在回路,从头结点开始遍历就会进入死循环,可以通过设置一个快指针与慢指针。快指针每次遍历是P->next->next慢指针每次都是P->next,则如果有回路的话,快指针与慢指针一定会相遇。可以比喻一下两个人跑圈,一个人速度快,一个人速度慢。从同一起点出发,无限的跑下去,那么两个人肯定会有相遇的一刻。

C++编程实战

第一题

问题描述:
给你n组测试数据,每组测试数据有m(0< m<=100)个正整数,求出m个数的最小公倍数。

Input:
输入n,随后有n行,每行开头输入m,m之后有m个正整数,相邻数之间用空格隔开。
Output:
每行输出一个数(该数在int范围内,同时,数前面加个“Case 1: ”,表示第几个Case,如“Case 1: 6”),相邻两组结果之间有一个空行,输出完最后一个结果后,再加一个空行,具体形式见样例。