
编程珠玑
文章平均质量分 87
_Luffy
https://github.com/JianmingXia
展开
-
给定日子,返回是一周的第几天--【编程珠玑】
给定日子,判断是一周的第几天;这一题其实是和上一篇是一个系列的,由于我只找到1900年1月1日星期一,暂且先判断这以后的日期吧;(一周的第一天是星期天,即周日)上一篇是用来得到两个日期的天数的,那这一道就窃取上一道的劳动成果了;通过得到目的日期与1900-1-1相差日期,对7取余,判断即可:原创 2013-12-31 09:34:32 · 1747 阅读 · 0 评论 -
给定某年某月,输出该月日历--【编程珠玑】
继给定两个日子计算相差天数和给定某个日子,返回在一周的第几天,接下来还有一个给定某年某月,输出该月日历;其实思想很简单,都是与1900-1-1相减,这样得到每月的第一天星期几,这样便于输出第一行;原创 2013-12-31 10:52:38 · 4230 阅读 · 3 评论 -
两个日期之间的天数--【编程珠玑】
被csdn各种大牛打击的...继续加油...今天翻了下《编程珠玑》,其实这本书感觉对自己还是有点深,吃不透啊。看到一题,有一小问是给定两个日子,计算这两个日子的天数;碰巧前几天做web作业也有差不多这题的,不过那一题直接调用系统函数的,两个日期一减/1000/60/60/24就是天数了;c中还真不知道有没有这样强大的函数,如果有,各位告诉我一下;说一下我实现的吧,给了两个日期,分别求出由公元元年开始过的天数,然后相减,即是相差的天数(正负不计较,大家都明白的);原创 2013-12-30 22:40:44 · 2096 阅读 · 1 评论 -
二分查找另类--【编程珠玑第四章】
这是《编程珠玑》第四章的问题:如果最初的二分查找对你来说太简单了(大家肯定都是这么感觉的...)那么请你试一下其变型:在p中返回t在数组x中第一次出现时的位置(即如果一个数组多次出现的话,原先的算法所返回的是众多位置的中的任意一个)。你的代码应该对数组元素进行对数次比较,可能要进行log2N此这样的比较才能完成此二分查找。这题的关键是找到最先开始出现的位置,如对数组:{0, 5, 5, 5, 5, 14, 16, 16, 50, 65, 70};原创 2014-01-04 13:39:46 · 1828 阅读 · 5 评论 -
二分查找递归实现--【编程珠玑】
作者说 有百分之九十的程序员在程序中发现了bug(同时怀疑那些没有发现bug的正确性)所以尽管二分查找是我们感觉上比较简单的一个程序,但是我们依然不可小视;首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。原创 2014-01-01 23:35:09 · 1541 阅读 · 0 评论 -
二分查找非递归实现--【编程珠玑】
首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。原创 2014-01-04 13:08:10 · 1184 阅读 · 0 评论 -
位图排序-《编程珠玑》
如题:实现位图排序,其中假设n为10 000 000,且输入文件包含1 000 000个正数;具体细节详见《编程珠玑》第一章问题;由于数据的大小问题,在这#define N 1000,即数据在1000以内的100个数据,进行排序(当然由于随机数的产生问题,有数重复,在此并未处理)原创 2014-03-18 20:01:29 · 1197 阅读 · 0 评论 -
插入排序--《编程珠玑》
如百度百科:有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外,而第二部分就只包含这一个元素。在第一部分排序后,再把这个最后元素插入到此刻已是有序的第一部分原创 2014-04-01 15:12:28 · 1175 阅读 · 0 评论 -
变位词--【编程珠玑】
重拾《编程珠玑》,再看一遍,之前未仔细看的或是忽略的,希望这次能有更丰富的收获;好,如题,变位词:一种把某个词或句子的字母的位置(顺序)加以改换所形成的新词,英文叫做anagram,词典把这个词翻译成“变位词”。书中将这个程序按三个阶段的“管道”组织,其中一个程序的输出文件作为下一个程序的输入文件。第一类程序标识单词,第二个程序排序标识后的文件,而第三个程序将这些单词压缩为每个变位词类一行的形式。原创 2014-03-20 16:45:09 · 2148 阅读 · 7 评论