干货:一文看懂编程中的基本数据结构与算法思想

摘要:北京时间20191010关于【干货:一文看懂编程中的基本数据结构与算法思想】的具体情况和说明,让www.hqx666.com新闻频道以图文形式为您慢慢道来。

向您推荐
继续播放

5.2 广度优先搜索使用队列(queue)来实现,整个过程也可以看做一个倒立的树形:

1)把根节点放到队列的末尾。

2)每次从队列的头部取出一个元素,查看这个元素所有的下一级元素,把它们放到队列的末尾。并把这个元素记为它下一级元素的前驱。(取出的元素也可以保存到一个队列)

3)找到所要找的元素时结束程序。

4)如果遍历整个树还没有找到,结束程序。

广度优先搜索相对于深度优先搜索,因为是逐层探索的,可以确保以较少的点到达目标点,缺点是存储量较大。

6 递归算法

递归就是某个函数直接或间接的调用自身。

语法形式上: 在一个函数的运行过程中, 调用这个函数自己:

直接调用: 在fun()中直接执行fun();

间接调用: 在fun1()中执行fun2(); 在fun2()中又执行fun1() ;

问题的求解过程是划分成许多相同性质的子问题的求解,而小问题的求解过程可以很容易的求出。这些子问题的解就构成里原问题的解。

待求解问题的解可以描述为输入变量x的函数f(x)。

通过寻找函数g( ),使得f(x) = g(f(x-1))。

且已知f(0)的值, 就可以通过f(0)和g( )求出f(x)的值。

扩展到多个输入变量x, y, z等, x-1也可以推广到 x - x1 , 只要递归朝着 “出口” 的方向即可。

递归算法分解出的子问题与原问题之间是纵向的, 同类的关系(枚举分解出的子问题之间是横向的, 同类的关系)。

递归的三个要点:

递归式:如何将原问题划分成子问题;

递归出口:递归终止的条件, 即最小子问题的求解,可以允许多个出口;

界函数:问题规模变化的函数, 它保证递归的规模向出口条件靠拢。

如一个求阶乘的递归程序,给定n, 求阶乘n!

阶乘的栈:

二分搜索的递归实现:

7 归并排序

归并排序(merge sort)是建立在归并操作上的一种有效的排序算法。该算法是分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并(2-way or binary merges sort)。

归并排序在1945年由冯·诺伊曼首次提出。

2-路归并的基本思路就是将数组分成二组A,B,如果这二组组内的数据都是有序的,那么就可以很方便的将这二组数据进行排序。如何让这二组组内数据有序?

可以将A,B组各自再分成二组。依次类推,当分出来的小组只有一个数据时,可以认为这个小组组内已经达到了有序,然后再合并相邻的二个小组就可以了。这样通过先递归的分解数列,再合并数列就完成了归并排序。

归并排序的效率是比较高的,设数列长为N,将数列分开成小数列一共要logN步,每步都是一个合并有序数列的过程,时间复杂度可以记为O(N),故一共为O(N*logN)。因为归并排序每次都是在相邻的数据中进行操作,所以归并排序在O(N*logN)的几种排序方法(快速排序,归并排序,希尔排序,堆排序)也是效率比较高的。

归并排序的实现分为递归实现与非递归(迭代)实现。递归实现的归并排序是算法设计中分治策略的典型应用,我们将一个大问题分割成小问题分别解决,然后用所有小问题的答案来解决整个大问题。非递归(迭代)实现的归并排序首先进行是两两归并,然后四四归并,然后是八八归并,一直下去直到归并了整个数组。

7.1归并排序分解

可以看到这种结构很像一棵完全二叉树,分阶段可以理解为就是递归拆分子序列的过程,递归深度为log2n。

7.2归并排序合并相邻有序子序列

再来看看并阶段,我们需要将两个已经有序的子序列合并成一个有序序列,比如上图中的最后一次合并,要将[4,5,7,8]和[1,2,3,6]两个已经有序的子序列,合并为最终序列[1,2,3,4,5,6,7,8],来看下实现步骤。

申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列;

设定两个指针,最初位置分别为两个已经排序序列的起始位置;

比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置;temp[index++] = A[i] <= A[j] ? A[i++] : A[j++];

重复步骤3直到某一指针到达序列尾;

将另一序列剩下的所有元素直接复制到合并序列尾;

7.3归并排序动图演示

7.4归并排序代码

8 回溯法和分书问题

回溯算法实际上是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯“返回,尝试别的路径。可以参考一下走迷宫的过程,一开始会随机选择一条道路前进,一直到走不通之后就会回头直到找到另外一条没有试过的道路前进。实际上,走迷宫的算法就是回溯法的经典问题。

回溯法实际上也是一种试错的思路,通过不断尝试解的组合来达到求解可行解和最优解的目的。虽然都有穷搜的概念蕴含其中,但是回溯法和穷举查找法是不同的。对于一个问题的所有实例,穷举法注定都是非常缓慢的,但应用回溯法至少可以期望对于一些规模不是很小的实例,计算机在可接受的时间内对问题求解。

许多复杂的规模的问题都可以使用回溯法,有”通用解题方法”的美称。分书问题和八皇后都是典型的回溯法问题。

分书问题能够较有代表性地表现数据描述、递归、回溯的算法思路。

有编号为0,1,2,3,4的5本书,准备分给5个人A,B,C,D,E,写一个程序,输出所有皆大欢喜的分书方案。

每个人的阅读兴趣用一个二维数组like描述:

Like[i][j] = true i喜欢书j

Like[i][j] = false i不喜欢书j

设计一个函数trynext(int i)给第i个人分书。

用一个一维数组take表示某本书分给了某人。take[j]=i+1;//把第j本书分配给第i个人

依次尝试把书j分给人i。

如果第i个人不喜欢第j本书,则尝试下一本书,如果喜欢,并且第j本书尚未分配,则把书j分配给i。

如果i是最后一个人,则方案数加1,输出该方案。否则调用trynext(i+1)为第i+1个人分书。

如果对第i个人枚举了他喜欢的所有的书,都没有找到可行的方案,那就回到前一个状态i-1,让i-1把分到的书退回去,重新找喜欢的书,再递归调用函数,寻找可行的方案。

当like矩阵的值为

附归并排序的代码:


查看更多
李卫当官3|李和1979重生|李宗瑞 bt|李宗瑞 ed2k|李宗瑞 torrent|李宗瑞 种子|李宗瑞 网盘|李宗瑞108集在线观看|李宗瑞27g|李宗瑞49集|李宗瑞bt|李宗瑞bt种子下载|李宗瑞下载地址|李宗瑞全集种子|李宗瑞全集种子下载|李宗瑞种子|李宗瑞种子下载|李宗瑞种子下载地址|李宗瑞视频种子|李宗瑞迅雷下载|

实时推荐

绿水青山是我们能给孩子们最好的儿童节礼物
推荐 2020-06-02 15:47 991 5746
青中带红,二次元的青椒肉丝!
推荐 2020-06-02 15:47 292 9944
有种“大胆”叫刘亦菲的纹身,当她一转身,粉丝:笑不出来
推荐 2020-06-02 15:47 177 4350
不断夯实宣传阵地建设,持续推进“一盔一带”安全守护行动
推荐 2020-06-02 15:47 689 6604
关爱未成年人|“传家训树家规立家风”让蒙自六·一更美丽
推荐 2020-06-02 15:47 910 3272
“健康生活·四合理”即日起邀请区内专家达人于您聊健康
推荐 2020-06-02 15:47 229 868
成功前,低头不语—路该怎么走?
推荐 2020-06-02 15:47 781 6142
阳台要安装推拉门吗?老师傅这么说,庆幸及时知道了
推荐 2020-06-02 15:47 713 4730
除了韭菜炒鸡蛋、西红柿炒鸡蛋,鸡蛋还能配什么?
推荐 2020-06-02 15:47 636 4153
自家孩子和其他的小朋友抢玩具,这种行为父母该不该管?
推荐 2020-06-02 15:47 477 666
出圈预定!江苏卫视天猫618超级晚官宣第二波艺人阵容跨界大咖搭档顶级唱将
推荐 2020-06-02 15:47 306 3043
冬天1斤6元懒得挖,到了夏天1斤上20元,网友:皮厚没肉
推荐 2020-06-02 15:47 782 8984
《奔跑吧》春游,蔡徐坤被杨迪拿小板凳愤怒“暴打”,怪他太皮了
推荐 2020-06-02 15:47 757 7337
舒尔AONIC 50无线降噪耳机评测:佩戴舒适、音质出色
推荐 2020-06-02 15:47 115 8797
丹阳一男孩负气离家出走,民警奔波数小时寻回!
推荐 2020-06-02 15:47 326 2022
4G手机借618大促清库存,5G新品能否后来居上?
推荐 2020-06-02 15:47 183 8922
《僵尸先生》成员4死3疯,林正英的遗言,让人细思极恐
推荐 2020-06-02 15:47 934 3697
多部门联合发布《网络安全审查办法》正式实施:重点评估这些因素可能带来的国家安全风险
推荐 2020-06-02 15:47 211 6718
爱心书籍送“候鸟” 志愿服务迎“六一”
推荐 2020-06-02 15:47 251 7217
何以解馋热闷?唯有雪糕,7款雪糕测评安排
推荐 2020-06-02 15:47 985 3775
原创 海贼王之吃货福音!路飞索隆成饮品,娜美罗宾化身糯米团等你试吃
推荐 2020-06-02 15:46 694 5820
崇明集中整治人力资源市场秩序
推荐 2020-06-02 15:46 687 4245
当中国阿胶遇上韩国红参会碰撞出怎样的火花?
推荐 2020-06-02 15:46 184 7415
昌江为师生们赠送图书 营造浓郁的读书氛围
推荐 2020-06-02 15:46 460 1496
“疫”样六一“童”样快乐——东营市广饶县西苑幼儿园开展线上六一同乐活动
推荐 2020-06-02 15:46 384 2848
【大排查大整治】冷水滩:广泛张贴食盐专营政策告知书 确保消费者用盐安全
推荐 2020-06-02 15:46 187 1288
“六一”国际儿童节,临城各学校这样度过
推荐 2020-06-02 15:46 736 3594
遂平县“安全生产月”活动启动
推荐 2020-06-02 15:46 819 9175
韩国首都圈教会现集体感染 疫情致猪价飙升
推荐 2020-06-02 15:46 137 4887
‘壶见’茶里品福建 原创闽式茶饮究竟特别在哪?
推荐 2020-06-02 15:46 144 7324
新手爸妈看过来 杭州市发布《3岁以下婴幼儿照护服务家长读本》
推荐 2020-06-02 15:46 878 3883
「中国绿都·最氧三明」春光掠影乡村美,青山飞出“金凤凰”
推荐 2020-06-02 15:46 999 1227
一个全国、一个全省!萧山检察这项工作在全省会议上作典型发言
推荐 2020-06-02 15:46 712 4422
网上交友需慎重!贵港一女子约见网友,见面变抢劫!
推荐 2020-06-02 15:46 218 3399
“驴友”留恋阳朔景色不慎迷路!桂林民警一小时快速救援
推荐 2020-06-02 15:46 818 7963
崇明:线上推送岗位 提供就业服务
推荐 2020-06-02 15:46 762 4738
果肉鲜红如血,单果重近半斤,人称“狗血桃”,6月将大批量上市
推荐 2020-06-02 15:46 504 2649
A股全天震荡、两市成交持续放量 机构:股指突破式行情随时可能再度出现
推荐 2020-06-02 15:46 848 9079
崇明:引进新技术 蔬果更香甜
推荐 2020-06-02 15:46 956 7468
崇明区举行2020年少年儿童庆祝六一国旗下成长主题升旗仪式暨六一主题展
推荐 2020-06-02 15:46 848 4143
崇明向化镇:治河道如烹小鲜
推荐 2020-06-02 15:46 148 6889
注意!平阳萧江镇河滨西路实施临时限制通行
推荐 2020-06-02 15:46 465 5734
陪伴,我们在一起 北京妇联举办庆“六一”家教主题云分享活动
推荐 2020-06-02 15:46 941 2290
六五环境日湖南主场活动将在常德举办
推荐 2020-06-02 15:46 579 540
【赏百草】《白茅根赞》
推荐 2020-06-02 15:46 877 9295
从江县多举措开展法治扶贫工作
推荐 2020-06-02 15:46 760 1671
恒大地产拟发行不超25亿公司债 利率区间4.9%-6.9%
推荐 2020-06-02 15:46 103 7301
经开区迎来最大规模返校复学
推荐 2020-06-02 15:45 182 6820
省药品监管局组织督查药械化百日集中整治行动工作
推荐 2020-06-02 15:45 795 3669
爱心满集美,护孩子成长|爱心厦门
推荐 2020-06-02 15:45 226 805
本月,房地产企业也要进军“直播带货”了
推荐 2020-06-02 15:45 343 2889
原创 牛仔裤怎么搭才更出众?今年学潮人这样来穿,时髦显瘦又显高
推荐 2020-06-02 15:45 225 2183
​幼儿园返园第一天:哎呀,把老师的名字搞忘了
推荐 2020-06-02 15:45 192 729
西藏:校园“解税”助大学生就业创业
推荐 2020-06-02 15:45 384 4866
如何选购面粉?各种面粉的不同应用,厨房新手福利
推荐 2020-06-02 15:45 862 8618
如何挑选入门级智能录音笔?搜狗C1对比讯飞A1,谁更值得买?
推荐 2020-06-02 15:45 366 1530
忆临海(台州府城)特色小吃(一)
推荐 2020-06-02 15:45 333 6934
“直男杀手”爽妹子,泡面刘海像可爱小哪吒,黑丝刺绣裙女神十足
推荐 2020-06-02 15:45 521 1083
乳腺癌化疗对心脏损伤有多大?你知道吗
推荐 2020-06-02 15:45 792 3843
退休“母女仨”自驾“新安江”十里画廊,沿江的“三潭枇杷”诱人
推荐 2020-06-02 15:45 457 1872
敢于直面暴雨的人,困境时才能够不慌不忙,勇往直前
推荐 2020-06-02 15:45 781 1615
原创 这“特别”通道要注意,副驾驶没坐人却被扣6分,很多人“中招”
推荐 2020-06-02 15:45 641 9679
拿着最火国漫IP,却做成廉价感格斗手游,粉丝情怀都难买单
推荐 2020-06-02 15:45 577 1159
武义县妇幼保健院方丽娟荣获嘉陵区“身边的感动”荣誉称号!
推荐 2020-06-02 15:45 179 8336
陕西:打造纳税人学堂升级版
推荐 2020-06-02 15:45 843 8128
厦门:退税当日到账 加力企业复工
推荐 2020-06-02 15:45 645 2303
庆六一,月牙泉小镇举办古镇寻踪·小鬼当家益智活动
推荐 2020-06-02 15:45 335 5996
雷克萨斯和沃尔沃哪个品牌更高档?老司机:它的质量和油耗有优势
推荐 2020-06-02 15:45 874 1705
梅州市自然资源局抓紧抓实地质灾害防治工作
推荐 2020-06-02 15:45 756 5343
庆“六一” 宣禁毒
推荐 2020-06-02 15:45 224 3586
华为手机新专利曝光:屏下镜头、左右无边框
推荐 2020-06-02 15:45 383 2696
《星辰变》:女主姜立的出场瞬间惊艳无数的漫迷
推荐 2020-06-02 15:45 180 4658
【区县动态】临澧县开展“户帮户亲帮亲、互助脱贫奔小康”公益活动
推荐 2020-06-02 15:45 189 736
从江县斗里镇:组织开展2020年度基干民兵整组点验
推荐 2020-06-02 15:45 298 5331
汕头离自贸区更近了?综合保税区投资过亿,助力打造区域中心城市
推荐 2020-06-02 15:45 449 5195
因为长得好看,5次拒绝杨洋的表白,如今好看的被网友称为女神
推荐 2020-06-02 15:45 132 8122
黄宗泽张曦雯戏假情真?男方觉得女方很可爱
推荐 2020-06-02 15:45 821 5261
苏炳添晒3000米成绩,遭网友怒喷:你确定是运动员?这是负重跑么
推荐 2020-06-02 15:45 989 5016
决战老乌山——普洱市、县两级政协助力老乌山脱贫攻坚纪实
推荐 2020-06-02 15:45 864 2597
漳州5月商品住宅销售排行榜出炉,卖最好的项目并不便宜
推荐 2020-06-02 15:45 649 2394
“七子去六子回”是真的吗?历史上真实的杨家将,只有一人战死
推荐 2020-06-02 15:44 861 3193
飞机票150,住宿费低,人少天气凉,正是去敦煌旅游好时候(一)
推荐 2020-06-02 15:44 268 1010
[青海]马忠英副厅长要求分管部门党员干部讲党性讲担当讲作为
推荐 2020-06-02 15:44 529 2047
沉寂百年的川北古民居 一砖一瓦诉说老宅情怀
推荐 2020-06-02 15:44 492 3460
[青海]马忠英副厅长调研指导黄南州公路工程建设项目疫情防控和安全生产工作
推荐 2020-06-02 15:44 585 2573
中国绿都 最氧三明 | 在六月的三明,重启你的2020
推荐 2020-06-02 15:44 419 6667
真情关爱烈属 告慰烈士英灵——湖南省益阳市积极做好烈士遗属安置工作纪实
推荐 2020-06-02 15:44 795 5216
保罗也能拿MVP选票?ESPN专家团权威票选,他上榜太意外!
推荐 2020-06-02 15:44 102 3641
入夏首场大雨致东营西二路严重积水影响市民出行
推荐 2020-06-02 15:44 993 8930
“疫”样六一,别样精彩
推荐 2020-06-02 15:44 808 6608
工行淮北分行全力做好防范电信网络诈骗宣传活动
推荐 2020-06-02 15:44 261 5866
疫”样六一“童”样精彩——广饶街道实验幼儿园开展线上“六一”活动
推荐 2020-06-02 15:44 174 4564
美国三大股指六月首个交易日均轻微上涨
推荐 2020-06-02 15:44 734 7679
铜仁市首家“未成年人一站式询问救助中心”在碧江挂牌成立
推荐 2020-06-02 15:44 168 9909
@福州人,骑行电动自行车违法后果究竟有多严重?
推荐 2020-06-02 15:44 553 9963
美国加利福尼亚州的新增新冠病例增加11%
推荐 2020-06-02 15:44 871 4744
南京银行分别与江苏交控、江苏烟草签订全面战略合作协议
推荐 2020-06-02 15:44 423 8401
第六届王者荣耀高校联赛分站赛—大区赛赛程安排
推荐 2020-06-02 15:44 641 9319
河北大学到威县调研考察洽谈定点帮扶工作
推荐 2020-06-02 15:44 517 2103
临泽融媒:蓼泉镇农业保险助力脱贫攻坚
推荐 2020-06-02 15:44 702 9201