登陆注册
9284300000167

第167章 白板编程

“这个问题,需要用到高中数学知识。”

推理过程:忽略一胞多胎、不育夫妇以及还没生下男孩就去世的夫妇。

首先要认识到的是,该国的所有家庭,在停止生育之前,都拥有了或即将拥有一个男孩。为什么呢?因为每对夫妇都会不停生孩子,直到生出一个男孩才罢休。除了多胞胎,“一个男孩”就是“只有一个”的意思。因此,有多少家庭,就有多少男孩。

不过,一个家庭可以有任意数量的女孩。对女孩子做一次想象中的人口调查会是个好办法。

邀请全国所有的母亲集中到大房间,通过公共广播系统询问:“请所有第一胎生女孩的母亲举起手来好吗?”自然,有一半的妇女会举手。

如果母亲总数为N,那么N/2会举手,也就代表第一胎生的女孩有N/2个。请在想象中的标示牌上记下来:N/2。

接着你又问:“请第二胎生女孩的母亲举起手来好吗?第一胎、第二胎都是女孩的请别把手放下哦。”有一半的手会放下去,但不会有新的手举起来。第一个问题时就没举手的母亲,不会生第二个孩子,因为她们第一胎就是男孩。

于是,举起来的手是N/4,这意味着第二胎生出的女孩有N/4个。把它记在标示牌上。“请第三胎是女孩的母亲继续举起手好吗?”你明白了吧。继续这么做,直到最后再也没有还举着的手。每一轮问题,举起的手都会放下去一半。

这就带来了一个我们很熟悉的数列:(1/2+1/4+1/8+1/16+1/32+...)×N这一无穷级数之和为1(×N)。女孩的人数等于家庭数N,也等于男孩的人数(或非常接近)。因此,该国的男女比例是1:1。

至于为什么想当然是错的,固然每个家庭都有男孩,有很多家庭没有女孩;但同时所有家庭只会有一个男孩,却有可能有多个女孩。

这两种情况取得了折中。

“完成了前面的开胃菜,下面我们进行更加传统的项目,现在有N个32位整数,需要完成排序。这道题答对双倍奖励,答错双倍惩罚,不允许跳过。”少女在眼前的全息白板上写着,到了“白板编程”环节。

“总之,冒泡排序是错的。”这个***式的笑话,引来一阵大笑。

“这个N是多少呢,我想不同的N结果差异会很大。”墨出尘一眼就识别出了潜在的陷阱。

“我们不妨让N=150,000。”

“那可是相当多的数字了,我想快速排序是个不错的选择。”墨出尘道。

“OK,sounds great,下一步,钟奇正你负责快速排序算法的实现,墨出尘你需要向初中生水平的我,解释清楚什么是快速排序算法。”少女道。

“我该用什么语言来实现?有什么限制吗?”

“为什么我要向初中水平的人解释什么是快速排序算法?”

“我认为你可以在python、c(c++)、java、swift、perl中选择一个,至于为什么要解释给不懂的人,很简单,这测试的是同理心,这与我们设计产品时,切换到用户角度来思考是一个道理。”

钟奇正拿着一支黑色的马克笔,符号开始在白板上涌现,速度快得让人惊讶。

墨出尘开始解释什么是快速排序,他是这样说的:

“快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。首先从数列中挑出一个元素,称为“基准”(pivot);

“重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;

“递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序,就完成了快速排序。”

“听起来像是疯子的喃喃自语,我完全不知你在说什么。”少女反馈道。

“我觉得很清晰啊。”

“上面的纯属废话,能看懂你说的是什么的,本身就懂归并排序;看不懂的,依然学不会。这是我对你说的是废话这一观点的逻辑证明。”

“好吧,我承认上面的很晦涩,毕竟自然语言并不是表述算法的合适载体,自然语言本身的歧义性、模糊性使它不具备这种功能,或许你看看钟奇正写的代码就清晰了。”

少女双手抱头,“我不看代码!我不看代码!我不看代码!”

“墨出尘,我认为你举个例子加以说明会好很多。”钟奇正已经完成了白班编码。

“ah,好主意,正好也给你提供一个测试用例,我们拿15个数举个栗子好了,至于15万个数,在逻辑上是一样的。只是运行时间、内存占用会多很多。”

假设有一组数是3、44、38、6、47、15、36、26、27、2、46、4、19、50、48,现在我们对它进行快速排序。

首先我们挑选3作为基准,在过程中我们对小于3的数,进行标记,并替换到前面,当一圈进行完后(到最后一个数48),我们将小于3的数移动到左侧。

3、2、38、6、47、15、36、26、27、44、46、4、19、50、48(2与44替换)

下面让3就这个基准就处于数列的中间位置,即它左边的都比它小,右边的都比它大。数列变为2、(3)、38、6、47、15、36、26、27、44、46、4、19、50、48。

之后以3为分界线,分别对3左边的数列进行快速排序,右边的数列同样进行快速排序。因为左边只有一个数,至此快速排序结束,不再递归。

右边的38、6、47、15、36、26、27、44、46、4、19、50、48数列,以38基准进行快速排序,结果是38、6、15、36、26、27、4、19、47、44、46、50、48

将38基准位置进行调整,6、15、36、26、27、4、19、38、47、44、46、50、48

将38左侧,右侧分别进行快速排序6、15、36、26、27、4、19以6为基准,6、4、36、26、27、15、19,变为4、6、36、26、27、15、19,将36、26、27、15、19进行快速排序,变为26、27、15、19、36,将26、27、15、19、进行快速排序,26,15,19,27,调整位置,15,19,26,27,将15,19进行快速排序得到15,19

所以38左侧快速排序结果为4、6、15、19、26、27、36

38右则为47、44、46、50、48,快速排序得到44、46、47、50、48,对44、46进行快速排序得到44、46,对50、48进行快速排序得到48、50。所以右边结果为44、46、47、48、50

所以最终结果为2、3、4、6、15、19、26、27、36、(38)、44、46、47、48、50。

“这个过程与我的完全一致,我顺便做了个排序可视化,侧面验证了正确性,如果对排序非常感兴趣,可以看这里,

“见识到了结对编程的重要性了吧,我们深入探讨一下,如果数据本身是基本有序的,快速排序算法还有优势吗?”

同类推荐
  • 从末日崛起

    从末日崛起

    本文随缘更新,反正会在八点之前!如果上了这台车,请各位男神女神点点关注收藏,小的给你们喊666!车门锁起来,一个都别想下去!一本非主流的末日小说,女主很傲娇,冷漠,心硬,禁欲系,不接受辩驳,我说的都有道理,谁觉得不对?neng死!排雷:1,丧尸也有社交活动,会搞事情围城,还会有十八房姨太太2,本文有恶俗烂大街修炼重生穿书情节,主角金手指比女娲补天的柱子还要粗。3,女主是个修炼狂,前期不谈恋爱,升级打怪复仇。4,男主非人,字面意思。作者婊出天际,所以主角也暗搓搓的婊里婊气,没圣母家人没拖后腿猪队友,经常自己打脸自己,前面不甜,后面高甜。(反正没写到,就先画一个饼)
  • 逆天老师

    逆天老师

    学校对面里传来惨叫。书店老板吴语赶忙过去看,发现一位女生像吸面条一样把一个男生吃掉了。很快,吴语发现,这个学校里充满了各种各样的疑点。而这一切都与史老师有关。在与史老师一起调查并且解决问题的过程中,吴语渐渐发现了这座城市的疑点。而迎接他们的,也将是一场恶战……
  • 我的师父很多

    我的师父很多

    江湖纷争,大争之世。大秦人的老大拎着陌刀,抽得天下鼻青脸肿,江湖里的老不死蹲在山上,一回头把整个天下抛到了身下。有力士徒步丈量大地,有江湖豪侠一剑开天,可转眼便醉倒在美人的怀里。道士负剑,书生醉酒。穿着破败的叫花子,拎起一根烂树枝,便敢冲上道门祖庭。柳堤长亭,枯坐了三十年的男子,转身而出,手持桃花,抬手便抽碎了十里红烛。大秦年号更为大源。背负木剑的少年踏出了山村。(单女主)群298403039
  • 傻狐的快穿记

    傻狐的快穿记

    “畜生道?”“轮”苏阿狸微眯眼眸,坚定地回答道。判官微微叹气,问世间情为何物,缘也,命也。复杂,复杂,太复杂。他原是高高在上的神却与她错过了后来为了她为了他们渺茫的缘,化身千千万万的碎片,只为了最后的相见。
  • 综影视男神苏翻天

    综影视男神苏翻天

    时隔一年,作者毕业了,有时间写小说了。推荐作者另一本《位面商铺之卡牌专营店》从第三卷开始是综影视,前两卷是一年前写的,连不起来了,所以画风突变
热门推荐
  • 最强神之路系统

    最强神之路系统

    叶逸,一个注定不平凡的男人他是整天玩了泡妞的叶家大少他被“成神之路”系统选中必定玩转都市玩转仙界注定此生不平凡!!!
  • 神奇的针灸疗法

    神奇的针灸疗法

    《神奇的针灸疗法》主要内容分为针灸的起源、针灸的发展、针灸面面观等章节。 究竟谁是第一个发明针灸的人,已经无从考查,但不可否认的是,针灸学是古人从自卫、谋取缓解痛苦的种种动作中逐渐掌握的。由无意识的动作到有意识的解除痛苦,经过了不知多少尝试,是若干年的经验所积累而成的宝贵财富。
  • 总裁的赎心情人

    总裁的赎心情人

    刁小溪:我爱你,可是还有机会吗?<p>卞玉泽:你永远是我的,生,是,死,也是。<p>夏俊彦:如果,你还能爱,给我一次机会好吗?我会等你,直到你来。<p>丁傲然:这是我常带女伴来的地方,怎么样,不错吧?<p>白小荷:我得不到的,谁都别想得到。<p>………………<p>她,刁小溪,只是简单的女子,平凡如尘埃,可是上帝却偏不如她愿,在婚礼的前夕,一场无妄之灾,打破他的平静,一切,旦夕之间,已是不同,五年之后,物是人非,她想爱,可是,他不愿意给她机会,她,不爱,却无法拒绝他深情的眼眸。还有他,像魔鬼与撒旦的化身,在最严肃的场面总是最滑稽的出现,还有他,他,他……到底她该如何选择,或者,命运又如何为她作出了选择呢……<p>“你不爱我了吗?”<p>”爱“<p>”那你为什么跟他走,不留下来?“<p>“那是因为我太爱了。”<p>“不,我不会让你走的,除非我死!”<p>………………<p>明明是他先要放弃,为何现在又出来搅局,充当她的免费斯司机、冒牌男友、厨师兼洗衣工,更过分的,竟然连她不小心怀的孩子的尿布也洗的干干净净,似乎一点也不介意这个“野种”。这到底是怎么了,谁能告诉她…………<p>推荐月人的小说<p>《冷酷堡主色娇妻》完结本,进入半价区,看完大概需要两~三元人民币<p>《压寨王妃》完结本<p>《邪王的风流小妾》情人系列:<p>第一部《总裁的正牌情人》<p>第二部《总裁的厨娘床伴》<p><p>月人的群:6183341365728619喜欢的可以进去方便交流
  • 篮坛大金刚

    篮坛大金刚

    当龙金刚冒充“金刚”在纽约帝国大厦塔尖“打飞机”的时候,没有人知道他其实原本只想成为一名武者
  • 弑神龙帝

    弑神龙帝

    他,废物的时候常常被欺负,失去尊严。有了实力之后,他找回了自己的尊严,但是他也才知道,这个世界上本就不公平,别人为了得到自己的功法,害得自己家破人亡,不得不逃。当自己的有强大的实力之后,却得知自己的敌人是如此的强大。不过自己却没有因为别人的强大而胆怯,自己一步步的壮大,把强大的敌人踩在脚下,自己对自己的敌人彻底抹杀。神来弑神,龙来屠龙。
  • 重生之蛇精病的报恩

    重生之蛇精病的报恩

    邓梓从小有三个目标:1、谢浩然爱上她;2、跟谢浩然牵手成功;3、跟谢浩然共度一生。大学毕业后在她终于向第三个迈进的时候,她却不经意的感觉到身后总有一道视线,不近不远的跟着她……邓梓尖叫:你是谁!你为什么老跟着我!潘毓认真脸:我是来报恩的。
  • 妃常为贼:扑倒压寨相公

    妃常为贼:扑倒压寨相公

    某女:“我有孩子了。”某配角:“小狸这么可爱,我愿意当她的爹。”某女:“我不想做什么皇后,后宫心计烦死了。”某配角:“没事,后宫只你一人。”某男:“滚开,小狸是我的,她也是我的。”某女:“这样啊?我要怎么选择?不如你们都说个条件吧!”某配角:“三千弱水,只取一瓢饮,小狸会继承皇位。”某男:“我答应做你的压寨相公。”某女:“……”
  • 思考成才(中华民族传统美德教育读本)

    思考成才(中华民族传统美德教育读本)

    本丛书筛选内容主要遵循以下原则要求:(1)坚持批判继承思想,取其精华、去其糟粕。既不全盘肯定,也不全盘否定。坚持抽象继承、演绎发展、立足当代、为我所用。(2)坚持系统整体的原则。注意各历史时期分布;注意各民族的进步人物;注意各层面人物;注意人物各侧面。做到:竖看历史五千年,纵向成条线;横看美德重实践,横向不漏面。(3)坚持古为今用,为我所用原则。在发掘美德资源时,特别挖掘古代人物故事、言论,注重寻找挖掘各阶层、各民族的传统公德、通德、同德;注重人民性、民主性、进步性、发展性、普遍性、抽象性,不求全古代,不求全个体。
  • 权少求娶:天黑说晚安

    权少求娶:天黑说晚安

    他是赫赫有名的陆氏财阀权二少,冷酷无情,却唯独对她上了心动了情。她使了十八般手段成功的和他结合,他却潇洒走人。“我们不般配。”“我们身高匹配,大小合适,深浅适中,哪里不配?”他追追追,她逃逃逃,日复一日,她忍无可忍的怒吼。“你到底想要怎样?“他淡淡勾唇,拥她入怀,“亲爱的,嫁给我。”她粲然一笑,“想求婚,请排队。”
  • 习惯领域的力量

    习惯领域的力量

    习惯领域简称HD,是英文HabitualDomains的缩写。我们每个人在成长的过程都会遇到无法突破的瓶颈,因为当我们通过学习,我们的思想、行为会落入习惯的模式,逐渐僵化,形成习惯领域。唯有突破它,才能拥有新的力量,达到一个新的境界。习惯领域的运用范围很广,用在日常生活,它会呈现生活新貌;用在学习,它会带来学习新境;用在企业,它会开创企业新篇……读完这本书,你的人生将充满智慧和喜悦。习惯是一种无形的力量,成功是一种习惯,喜悦是一种习惯,打开智慧也是一种习惯,读完本书,拓展我们的视野将会成为我们的一种思维习惯!