《达芬奇密码》中有哪几种解密方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《达芬奇密码》中有哪几种解密方法?相关的知识,希望对你有一定的参考价值。

我需要详细哒、谢谢大家啦≥﹏≤

这里的解谜比较简单,数字升序排列即可发现规则。

文字谜题

啊,严酷的魔王(O,Draconian devil)

噢,瘸腿的圣徒 (Oh,Lame Saint)

解谜方式为易位构词游戏,将文中“O,Draconian devil”逐字拆开为单个字母(o,d,r,a,c,o,n,i,a,n,d,e,v,i,l)。重新排列后获得的有意义的词或句为“LeonardodaVinci”。“Oh,Lame Saint”也逐字拆开后重排获得有意义的词或句为“TheMonaLisa”。

易位构词谜题是在国外比较流行的单句或多句一组的谜题,需要将每一句进行字母重排获得有意义的新词句,得到最终的谜底。例如:“earth = heart”“Semolina ~ is no meal.”“Roll in the hay = Thrill a honey”。其实达芬奇密码中的谜题有很多,如拱心石藏密筒的密码转轮,关于P.S.与索菲的关系等。

扩展资料:

《达·芬奇密码》是美国作家丹·布朗创作的长篇小说,2003年3月18日由兰登书屋出版,此书是布朗2000年小说《天使与魔鬼》(Angels and Demons)的续篇。

该作并以750万本的成绩打破美国小说销售的记录。小说集合了侦探,惊悚和阴谋论等多种风格,并激起了大众对某些宗教理论的普遍兴趣。 兰登书屋于2004年将此书再版为“特制插图版”。新版本包含了超过160幅包括文字说明的图片。

参考资料来源:百度百科-达芬奇密码



参考技术A 雅克·索尼埃是郇山隐修会的四个主管之一 因而知道“拱顶石”的秘密,即拱心石能依次揭示圣杯藏匿的位置,并且他握有那些将动摇基督教和天主教会的根基的文件。“导师”杀死他就是为了要迫使他供出情报以便消灭郇山隐修会的其他高级成员。索菲·纳芙与祖父中断联系的原因是,在一次学校放假时她本来想给祖父来个惊喜的突然造访,却目睹了祖父正在诺曼底家中参与一个异教的性仪式(圣婚,Hieros Gamos)。索尼埃(Saunière)临死前用隐写笔写在地上的讯息中还有“P.S:去找罗伯特·兰登”。这是贝祖·法希怀疑兰登是凶手的原因。法希在兰登到达之前擦掉了此行,以使兰登不知道警察怀疑他... 参考技术B 这两组字母都是九个,可能要用到九宫格,也可能是栅栏
达芬奇密码里用到过倒序,可能会用到
ps:圣杯是holy grail 九个字母,可能是这个答案
参考技术C 雅克·索尼埃是郇山隐修会的四个主管之一 ,因而知道“拱顶石”的秘密,即拱心石能依次揭示圣杯藏匿的位置,并且他握有那些将动摇基督教和天主教会的根基的文件。“导师”杀死他就是为了要迫使他供出情报以便消灭郇山隐修会的其他高级成员。
  索菲·纳芙与祖父中断联系的原因是,在一次学校放假时她本来想给祖父来个惊喜的突然造访,却目睹了祖父正在诺曼底家中参与一个异教的性仪式(圣婚,Hieros Gamos)。
  索尼埃(Saunière)临死前用隐写笔写在地上的讯息中还有“P.S: 去找罗伯特·兰登”。这是贝祖·法希怀疑兰登是凶手的原因。法希在兰登到达之前擦掉了此行,以使兰登不知道警察怀疑他。出于偶然,警察把讯息传真到 索菲·纳芙的办公室时,索菲看到了讯息的完整内容。她立刻意识到这个讯息其实是写给她的,因为在她小时候她祖父叫她“索菲公主”(Princess Sophie,字头缩写就是“P.S.”)。由此她也明白了兰登是清白的。在和兰登同在卢浮宫时,她让兰登打电话给她的私人语音信箱并听她在里面给兰登的留言,从而暗中把这点告诉了兰登。
  “P.S.”的写法,对一般人来说,是用于书信中很常见的“附言”(Post Script)一词的缩写;然而对索菲·纳芙来说,这却是祖父索尼埃对她的爱称“索菲公主”(Princesse Sophie)的缩写,这也是因为索尼埃清楚索菲是法国墨洛温王朝的后裔,所以称她为公主。所以贝祖·法希完全没有意识到这个缩写在索尼埃神父的讯息中的真实含义,而索菲·纳芙却清楚地明白了“去找罗伯特·兰登”那行字是 祖父写给自己的遗言。此外,索尼埃保藏的保险箱钥匙上雕有郇山隐修会(Priory of Sion)的缩写,也是P.S.。
  索尼埃的血书的其它三行那些看似为僧侣的祷告的文字,其实是用打乱字母的拼写顺序的方式而隐藏了一些真实的线索(参看易位构词游戏)。第一行是被一组打乱了次序的斐波那契数。第二行“O, draconian devil!”和第三行“Oh, lame saint!”的真实内容则分别是“Leonardo da Vinci”(列奥纳多·达芬奇)和英语的“The Mona Lisa”(蒙娜丽莎)。这些线索的真实含义可以导引出第二组线索。在油画蒙娜丽莎外面的玻璃上,索尼埃用卢浮宫博物馆馆长的隐写笔写下了只能在紫外线照射下才能看到的讯息“So dark the con of Man”(男人的欺骗如此黑暗)。第二条线索则是挂在附近的达芬奇的另一幅油画《岩间圣母》(Madonna of the Rocks,藏于卢浮宫;该作品后经重画,叫The Virgin of the Rocks,藏于伦敦国立美术馆)。在这张画背后索尼埃藏了一把钥匙,并用馆长的隐写笔在钥匙上写了一个地址。
  这把钥匙能打开苏黎世存托银行巴黎分行的一个保险箱。索尼埃在银行的帐户号码是按正确顺序排列的那些斐波那契数列。
  索尼埃在枪口下告诉赛拉斯的那些指示实际上是一个精心编排的骗局,他告诉赛拉斯拱心石埋在巴黎圣苏比教堂(Saint-Sulpice)里精确地位于古“罗斯经线”(Rose Line,在将本初子午线重新定义为穿过格林威治天文台之前,曾将零度经线定义为穿过巴黎,罗斯经线指的就是这条旧的本初子午线)上的一个方尖碑的下面。而实际上,方尖碑下的讯息只是简单地包含了一条对圣经约伯记中“你只可到此,切莫前行”(Hitherto shalt thou go and no further,见旧约〈伯〉38:11)一段文字的引用。赛拉斯读到了这句时才明白自己上当了。
  拱心石实际上是个藏密筒(cryptex,由cryptology和codex两词组合而来),这是种由列奥纳多·达芬奇发明的用来传递保密信息的圆柱形设备,要将它上面的可旋转的部件(暂且叫它密码轮)按正确的顺序组合才能打开它,如果用暴力打开它,里面装的一瓶醋就会破裂,而把里有写重要讯息的莎草纸给溶解。装着拱心石的红木箱含有打开拱心石需要的密码轮的正确组合顺序的线索,用与达芬奇日记一样的方式,这些线索是用反写的手写体写出的。在乘提宾的飞机逃往英格兰时,兰登解开了谜题,他发现了密码轮的正确组合应该是“S-O-F-I-A”,即索菲名字在古希腊语中的写法,这个词也有“智慧”的意思。
  拱心石藏密筒里实际装着一个小一点的、装有揭示密码轮组合第二道谜题的藏密筒。这个谜题说要找到“由一位教皇主持葬礼的爵士”(a knight a pope interred,注意“a pope”对解谜的正确理解不应是“一位教皇”,而应是表示“亚历山大·蒲柏”,按一般的人名写法即“A. Pope”)的墓上的球状物,里面说的并非是一位中世纪的爵士,而是指由亚历山大·蒲柏主持葬在西敏寺的伊萨克·牛顿爵士,那个墓上有一个巨大的球状雕塑,却不是拱心石中的谜语所说的东西,拱心石中的谜语真正指的是引导牛顿发现了万有引力定律的苹果所代表的球状物,谜语认为这个苹果“本应在坟墓之中”(然而这个意义重大的苹果实际上却没有出现在牛顿墓上),因此第二个藏密筒的密码轮组合应该是“A-P-P-L-E”,即苹果。
  “导师”的真实身份实际就是雷·提彬爵士。他知道郇山隐修会的主管们的身份,并对他们的办公室进行窃听。雷米是他的协从。用伪装的法国口音和阿林 加洛沙主教联系的就是提彬,这是为了掩藏他的真实身份,并哄骗阿林加洛沙资助寻找圣杯的计划。提彬从来没打算把圣杯交给阿林加洛沙,而仅仅是想利用主业会 的决心来找到圣杯。然而他相信郇山隐修会将会背弃将圣杯的秘密在约定时间公诸于世的誓约,因而他计划偷取那些圣杯文件后自己向世人公开它们。是他通知赛拉斯说兰登和索菲·纳芙在他的城堡里。他没有从兰登和索菲那里拿拱心石是因为他不想对他们暴露自己的身份。他原本计划让赛拉斯闯进自己家里并拿到拱心石,但 警察跟踪了兰登偷来的卡车上GPS设 备并听到赛拉斯开枪而到提宾家搜查时,提宾的计划落空了。提宾把纳芙和兰登带到伦敦的圣殿教堂是因为他很清楚这是个死胡同;他和雷米一起上演那出人质戏是 为了不暴露出真实阴谋地得到拱心石。和雷米一起在那辆豪华车里时赛拉斯接到的电话实际上也是藏在轿车后面的提宾悄悄打来的。
  为了灭口,提宾让雷米喝下了加了花生粉的科纳克白兰地,除掉了雷米,因为他知道雷米对花生有致命的过敏反应。提宾将赛拉斯藏在主业会伦敦总部的消息匿名举报给警方。
  在西敏寺里向提宾摊牌时,在当着提宾的面毁掉第二个藏密筒之前,兰登已先将它偷偷打开,并拿出了里面的东西。正当提宾在徒劳地求兰登说出第二个藏密筒中的内容以及圣杯的秘密存放地点的时候,警察赶来逮捕并押走了提宾。
  阿林加洛沙主教和赛拉斯两人相信,他们是在拯救教会,而不是在毁掉它。
  在提宾城堡的马房里发现了窃听设备后,贝祖·法希明白了纳芙和兰登是无辜的。
  在主业会伦敦总部外面,正在逃避警方追捕的赛拉斯意外地射中了阿林加洛沙。在明白了自己受到欺骗而犯下的可怕错误之后,阿林加洛沙请贝祖·法希将自己公文包里的息票债券交给被杀害的郇山隐修会领袖们的家属,作为良心上的一点补偿。赛拉斯则因中枪而死。

  ·第二个拱顶石里包含的最后讯息实际并没有指示出罗丝林礼拜堂,尽管事实上圣杯曾经被埋在那里的地板上的大卫星图案下面(组成大卫星的两个连锁三角形表示的是“剑锋”和“餐杯”,即男性e69da5e6ba90e79fa5e9819331333262383630和女性的象征)。
  罗丝林礼拜堂的导游是索菲长期失去联系的弟弟。
  罗丝林礼拜堂的守护人是索菲长期失去联系的祖母,也就是雅克·索尼埃的妻子。
  尽管郇山隐修会所有的四位领袖都被杀害,秘密也没有就此失传,因为还有一个(未写明的)会保证该组织及其秘密存活的应变方案。
  最后一条讯息的真实含义是圣杯被埋在卢浮宫的“倒置的”玻璃金字塔(即象征女性的“餐杯”)正下方的小金字塔形建筑的下面(即象征男性的“剑锋”,卢浮宫里的这两个金字塔形建筑的相对位置和构成大卫星的两个三角形的相对方式有些类似),有点讽刺的是在兰登和索菲最初从贝祖·法希手里逃跑时差点摔进那个玻璃金字塔里。
  在小说最后,罗伯特·兰登和索菲·纳芙相爱,他们商量好在佛罗伦萨相会。
参考技术D   雅克·索尼埃是郇山隐修会的四个主管之一 ,因而知道“拱顶石”的秘密,即拱心石能依次揭示圣杯藏匿的位置,并且他握有那些将动摇基督教和天主教会的根基的文件。“导师”杀死他就是为了要迫使他供出情报以便消灭郇山隐修会的其他高级成员。
  索菲·纳芙与祖父中断联系的原因是,在一次学校放假时她本来想给祖父来个惊喜的突然造访,却目睹了祖父正在诺曼底家中参与一个异教的性仪式(圣婚,Hieros Gamos)。
  索尼埃(Saunière)临死前用隐写笔写在地上的讯息中还有“P.S: 去找罗伯特·兰登”。这是贝祖·法希怀疑兰登是凶手的原因。法希在兰登到达之前擦掉了此行,以使兰登不知道警察怀疑他。出于偶然,警察把讯息传真到 索菲·纳芙的办公室时,索菲看到了讯息的完整内容。她立刻意识到这个讯息其实是写给她的,因为在她小时候她祖父叫她“索菲公主”(Princess Sophie,字头缩写就是“P.S.”)。由此她也明白了兰登是清白的。在和兰登同在卢浮宫时,她让兰登打电话给她的私人语音信箱并听她在里面给兰登的留言,从而暗中把这点告诉了兰登。
  “P.S.”的写法,对一般人来说,是用于书信中很常见的“附言”(Post Script)一词的缩写;然而对索菲·纳芙来说,这却是祖父索尼埃对她的爱称“索菲公主”(Princesse Sophie)的缩写,这也是因为索尼埃清楚索菲是法国墨洛温王朝的后裔,所以称她为公主。所以贝祖·法希完全没有意识到这个缩写在索尼埃神父的讯息中的真实含义,而索菲·纳芙却清楚地明白了“去找罗伯特·兰登”那行字是 祖父写给自己的遗言。此外,索尼埃保藏的保险箱钥匙上雕有郇山隐修会(Priory of Sion)的缩写,也是P.S.。
  索尼埃的血书的其它三行那些看似为僧侣的祷告的文字,其实是用打乱字母的拼写顺序的方式而隐藏了一些真实的线索(参看易位构词游戏)。第一行是被一组打乱了次序的斐波那契数。第二行“O, draconian devil!”和第三行“Oh, lame saint!”的真实内容则分别是“Leonardo da Vinci”(列奥纳多·达芬奇)和英语的“The Mona Lisa”(蒙娜丽莎)。这些线索的真实含义可以导引出第二组线索。在油画蒙娜丽莎外面的玻璃上,索尼埃用卢浮宫博物馆馆长的隐写笔写下了只能在紫外线照射下才能看到的讯息“So dark the con of Man”(男人的欺骗如此黑暗)。第二条线索则是挂在附近的达芬奇的另一幅油画《岩间圣母》(Madonna of the Rocks,藏于卢浮宫;该作品后经重画,叫The Virgin of the Rocks,藏于伦敦国立美术馆)。在这张画背后索尼埃藏了一把钥匙,并用馆长的隐写笔在钥匙上写了一个地址。
  这把钥匙能打开苏黎世存托银行巴黎分行的一个保险箱。索尼埃在银行的帐户号码是按正确顺序排列的那些斐波那契数列。
  索尼埃在枪口下告诉赛拉斯的那些指示实际上是一个精心编排的骗局,他告诉赛拉斯拱心石埋在巴黎圣苏比教堂(Saint-Sulpice)里精确地位于古“罗斯经线”(Rose Line,在将本初子午线重新定义为穿过格林威治天文台之前,曾将零度经线定义为穿过巴黎,罗斯经线指的就是这条旧的本初子午线)上的一个方尖碑的下面。而实际上,方尖碑下的讯息只是简单地包含了一条对圣经约伯记中“你只可到此,切莫前行”(Hitherto shalt thou go and no further,见旧约〈伯〉38:11)一段文字的引用。赛拉斯读到了这句时才明白自己上当了。
  拱心石实际上是个藏密筒(cryptex,由cryptology和codex两词组合而来),这是种由列奥纳多·达芬奇发明的用来传递保密信息的圆柱形设备,要将它上面的可旋转的部件(暂且叫它密码轮)按正确的顺序组合才能打开它,如果用暴力打开它,里面装的一瓶醋就会破裂,而把里有写重要讯息的莎草纸给溶解。装着拱心石的红木箱含有打开拱心石需要的密码轮的正确组合顺序的线索,用与达芬奇日记一样的方式,这些线索是用反写的手写体写出的。在乘提宾的飞机逃往英格兰时,兰登解开了谜题,他发现了密码轮的正确组合应该是“S-O-F-I-A”,即索菲名字在古希腊语中的写法,这个词也有“智慧”的意思。
  拱心石藏密筒里实际装着一个小一点的、装有揭示密码轮组合第二道谜题的藏密筒。这个谜题说要找到“由一位教皇主持葬礼的爵士”(a knight a pope interred,注意“a pope”对解谜的正确理解不应是“一位教皇”,而应是表示“亚历山大·蒲柏”,按一般的人名写法即“A. Pope”)的墓上的球状物,里面说的并非是一位中世纪的爵士,而是指由亚历山大·蒲柏主持葬在西敏寺的伊萨克·牛顿爵士,那个墓上有一个巨大的球状雕塑,却不是拱心石中的谜语所说的东西,拱心石中的谜语真正指的是引导牛顿发现了万有引力定律的苹果所代表的球状物,谜语认为这个苹果“本应在坟墓之中”(然而这个意义重大的苹果实际上却没有出现在牛顿墓上),因此第二个藏密筒的密码轮组合应该是“A-P-P-L-E”,即苹果。
  “导师”的真实身份实际就是雷·提彬爵士。他知道郇山隐修会的主管们的身份,并对他们的办公室进行窃听。雷米是他的协从。用伪装的法国口音和阿林 加洛沙主教联系的就是提彬,这是为了掩藏他的真实身份,并哄骗阿林加洛沙资助寻找圣杯的计划。提彬从来没打算把圣杯交给阿林加洛沙,而仅仅是想利用主业会 的决心来找到圣杯。然而他相信郇山隐修会将会背弃将圣杯的秘密在约定时间公诸于世的誓约,因而他计划偷取那些圣杯文件后自己向世人公开它们。是他通知赛拉斯说兰登和索菲·纳芙在他的城堡里。他没有从兰登和索菲那里拿拱心石是因为他不想对他们暴露自己的身份。他原本计划让赛拉斯闯进自己家里并拿到拱心石,但 警察跟踪了兰登偷来的卡车上GPS设 备并听到赛拉斯开枪而到提宾家搜查时,提宾的计划落空了。提宾把纳芙和兰登带到伦敦的圣殿教堂是因为他很清楚这是个死胡同;他和雷米一起上演那出人质戏是 为了不暴露出真实阴谋地得到拱心石。和雷米一起在那辆豪华车里时赛拉斯接到的电话实际上也是藏在轿车后面的提宾悄悄打来的。
  为了灭口,提宾让雷米喝下了加了花生粉的科纳克白兰地,除掉了雷米,因为他知道雷米对花生有致命的过敏反应。提宾将赛拉斯藏在主业会伦敦总部的消息匿名举报给警方。
  在西敏寺里向提宾摊牌时,在当着提宾的面毁掉第二个藏密筒之前,兰登已先将它偷偷打开,并拿出了里面的东西。正当提宾在徒劳地求兰登说出第二个藏密筒中的内容以及圣杯的秘密存放地点的时候,警察赶来逮捕并押走了提宾。
  阿林加洛沙主教和赛拉斯两人相信,他们是在拯救教会,而不是在毁掉它。
  在提宾城堡的马房里发现了窃听设备后,贝祖·法希明白了纳芙和兰登是无辜的。
  在主业会伦敦总部外面,正在逃避警方追捕的赛拉斯意外地射中了阿林加洛沙。在明白了自己受到欺骗而犯下的可怕错误之后,阿林加洛沙请贝祖·法希将自己公文包里的息票债券交给被杀害的郇山隐修会领袖们的家属,作为良心上的一点补偿。赛拉斯则因中枪而死。

  ·第二个拱顶石里包含的最后讯息实际并没有指示出罗丝林礼拜堂,尽管事实上圣杯曾经被埋在那里的地板上的大卫星图案下面(组成大卫星的两个连锁三角形表示的是“剑锋”和“餐杯”,即男性和女性的象征)。
  罗丝林礼拜堂的导游是索菲长期失去联系的弟弟。
  罗丝林礼拜堂的守护人是索菲长期失去联系的祖母,也就是雅克·索尼埃的妻子。
  尽管郇山隐修会所有的四位领袖都被杀害,秘密也没有就此失传,因为还有一个(未写明的)会保证该组织及其秘密存活的应变方案。
  最后一条讯息的真实含义是圣杯被埋在卢浮宫的“倒置的”玻璃金字塔(即象征女性的“餐杯”)正下方的小金字塔形建筑的下面(即象征男性的“剑锋”,卢浮宫里的这两个金字塔形建筑的相对位置和构成大卫星的两个三角形的相对方式有些类似),有点讽刺的是在兰登和索菲最初从贝祖·法希手里逃跑时差点摔进那个玻璃金字塔里。
  在小说最后,罗伯特·兰登和索菲·纳芙相爱,他们商量好在佛罗伦萨相会。

参考资料:http://baike.baidu.com/view/6119.html?wtp=tt

本回答被提问者和网友采纳

JAVA中有哪几种常用的排序方法?每个排序方法的实现思路是如何的?每个方法的思想是啥??

JAVA中有哪几种常用的排序方法?每个排序方法的实现思路是如何的?每个方法的思想是什么??我自学JAVA中,一直对数组的排序方法很迷茫,不知道解决思路和排序方法的思想是如何的。。上面三个问题请高手一一指教,感激不尽
(最主要的是这几种排序方法是如何实现的,我想要的是每一种排序方法的思路,思想,而不是复制的代码)例子代码可以适当说明一下。非常谢谢。

一、冒泡排序

已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先比较 a[1]与a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。再比较a[2]与a[3]的值,若a[2]大于a[3]则交换两者的值,否则不变。再比较a[3]与a[4],以此类推,最后比较a[n-1]与a[n]的值。这样处理一轮后,a[n]的值一定是这组数据中最大的。再对 a[1]~a[n-1]以相同方法处理一轮,则a[n-1]的值一定是a[1]~a[n-1]中最大的。再对a[1]~a[n-2]以相同方法处理一轮,以此类推。共处理n-1轮后a[1]、a[2]、……a[n]就以升序排列了。

优点:稳定;

缺点:慢,每次只能移动相邻两个数据。

二、选择排序

冒泡排序的改进版。

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。

选择排序是不稳定的排序方法。

n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:

①初始状态:无序区为R[1..n],有序区为空。

②第1趟排序

在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。

……

③第i趟排序

第i趟排序开始时,当前有序区和无序区分别为R[1..i-1]和R(1≤i≤n- 1)。该趟排序从当前无序区中选出关键字最小的记录 R[k],将它与无序区的第1个记录R交换,使R[1..i]和R分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。

这样,n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果。

优点:移动数据的次数已知(n-1次);

缺点:比较次数多。

三、插入排序

已知一组升序排列数据a[1]、a[2]、……a[n],一组无序数据b[1]、 b[2]、……b[m],需将二者合并成一个升序数列。首先比较b[1]与a[1]的值,若b[1]大于a[1],则跳过,比较b[1]与a[2]的值,若b[1]仍然大于a[2],则继续跳过,直到b[1]小于a数组中某一数据a[x],则将a[x]~a[n]分别向后移动一位,将b[1]插入到原来 a[x]的位置这就完成了b[1]的插入。b[2]~b[m]用相同方法插入。(若无数组a,可将b[1]当作n=1的数组a)

优点:稳定,快;

缺点:比较次数不一定,比较次数越少,插入点后的数据移动越多,特别是当数据总量庞大的时候,但用链表可以解决这个问题。

三、缩小增量排序

由希尔在1959年提出,又称希尔排序(shell排序)。

已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。发现当n不大时,插入排序的效果很好。首先取一增量d(d<n),将a[1]、a[1+d]、a[1+2d]……列为第一组,a[2]、a[2+d]、 a[2+2d]……列为第二组……,a[d]、a[2d]、a[3d]……列为最后一组以次类推,在各组内用插入排序,然后取d'<d,重复上述操作,直到d=1。

优点:快,数据移动少;

缺点:不稳定,d的取值是多少,应取多少个不同的值,都无法确切知道,只能凭经验来取。

四、快速排序

快速排序是目前已知的最快的排序方法。

已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先任取数据 a[x]作为基准。比较a[x]与其它数据并排序,使a[x]排在数据的第k位,并且使a[1]~a[k-1]中的每一个数据<a[x],a[k+1]~a[n]中的每一个数据>a[x],然后采用分治的策略分别对a[1]~a[k-1]和a[k+1]~a[n] 两组数据进行快速排序。

优点:极快,数据移动少;

缺点:不稳定。

五、箱排序

已知一组无序正整数数据a[1]、a[2]、……a[n],需将其按升序排列。首先定义一个数组x[m],且m>=a[1]、a[2]、……a[n],接着循环n次,每次x[a]++.

优点:快,效率达到O(1)

缺点:数据范围必须为正整数并且比较小

六、归并排序

归并排序是多次将两个或两个以上的有序表合并成一个新的有序表。最简单的归并是直接将两个有序的子表合并成一个有序的表。

归并排序是稳定的排序.即相等的元素的顺序不会改变.如输入记录 1(1) 3(2) 2(3) 2(4) 5(5) (括号中是记录的关键字)时输出的 1(1) 2(3) 2(4) 3(2) 5(5) 中的2 和 2 是按输入的顺序.这对要排序数据包含多个信息而要按其中的某一个信息排序,要求其它信息尽量按输入的顺序排列时很重要.这也是它比快速排序优势的地方.
参考技术A

最主要的是冒泡排序、选择排序、插入排序以及快速排序

1、冒泡排序



冒泡排序是一个比较简单的排序方法。在待排序的数列基本有序的情况下排序速度较快。若要排序的数有n个,则需要n-1轮排序,第j轮排序中,从第一个数开始,相邻两数比较,若不符合所要求的顺序,则交换两者的位置;直到第n+1-j个数为止,第一个数与第二个数比较,第二个数与第三个数比较,......,第n-j个与第n+1-j个比较,共比较n-1次。此时第n+1-j个位置上的数已经按要求排好,所以不参加以后的比较和交换操作。

例如:第一轮排序:第一个数与第二个数进行比较,若不符合要求的顺序,则交换两者的位置,否则继续进行二个数与第三个数比较......。直到完成第n-1个数与第n个数的比较。此时第n个位置上的数已经按要求排好,它不参与以后的比较和交换操作;第二轮排序:第一个数与第二个数进行比较,......直到完成第n-2个数与第n-1个数的比较;......第n-1轮排序:第一个数与第二个数进行比较,若符合所要求的顺序,则结束冒泡法排序;若不符合要求的顺序,则交换两者的位置,然后结束冒泡法排序。


共n-1轮排序处理,第j轮进行n-j次比较和至多n-j次交换。


从以上排序过程可以看出,较大的数像气泡一样向上冒,而较小的数往下沉,故称冒泡法。



public void bubbleSort(int a[])



int n = a.length;


for(int i=0;i<n-1;i++)



for(int j=0;j<n-i-1;j++)



if(a[j] > a[j+1])



int temp = a[j];


a[j] = a[j + 1];


a[j + 1] = temp;







2、选择排序



选择法的原理是先将第一个数与后面的每一个数依次比较,不断将将小的赋给第一个数,从而找出最小的,然后第二个数与后面的每一个数依次比较,从而找出第二小的,然后第三个数与后面的每一个数依次比较,从而找出第三小的.....直到找到最后一个数。


public void sort(int x[])



int n=x.length;


int k,t;


for(int i=0;i<n-1;i++)



k=i;


for(int j=i+1;j=n;j++)



if(x[j]>x[k])k=j;


if(k!=i)



t=x[i];


x[i]=x[k];


x[k]=t;








3、插入排序



插入排序的原理是对数组中的第i个元素,认为它前面的i-1个已经排序好,然后将它插入到前面的i-1个元素中。插入排序对少量元素的排序较为有效.



public void sort(int obj[])



for(int j=1;j<obj.length;j++)



int key=obj[j];


int i=j-1;


while(i>=0&&obj[i]>key)



obj[i+1]=obj[i];


i--;



obj[i+1]=key;





4、快速排序



快速排序是对冒泡排序的一种改进。它的基本思想是:通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此大道整个数据变成有序序列。



public void quickSort(int obj[],int low,int high)



int i=low;


int j=high;


int keyValue=obj[i];


while(i<j)



int temp=0;


while(i<j&&obj[j]>=keyValue)



j=j-1;



temp=obj[j];


obj[j]=obj[i];


obj[i]=temp;


while(i<j&&obj[i]<=keyValue)



i=i+1;



temp=obj[j];


obj[j]=ojb[i];


obj[i]=temp;



obj[i]=keyValue;


if(low<i-1)



quickSort(obj,low,i-1);



if(high>i+1)



quickSort(obj,i+1,high);



参考技术B 如果说是Java中,常用的就一种:Collections.sort。思路就是:使用系统自带的排序,排序的每个元素实现Comparable接口。
如果说,算法上有哪几种常用的排序方法,那是一个和Java本身完全无关的问题,你用C++实现也一样的。然而如果你用C++,它也有它自带的排序,同样是系统函数。
所以当你要排序,用系统自带函数就行了。Java系统还可能实现底层优化,是你自己写排序函数做不到的。

想知道算法上的排序方法,这里给你算法的名字:
基础的慢速的:bubblesort,insertsort复杂度nlogn
常用的:quicksort,mergesort,heapsort复杂度nlogn
最牛的却不总是能用的:shellsort(又叫bucketsort,radixsort)复杂度n追问

谢谢。。我了解一下。。我现在主要是自学,学点基础

参考技术C 直接插入:将n个元素看成一个有序表和n个无序表(这样循环执行,就可实现)
折半插入排序:将n个元素将其折半,递归条件下,将单元的元素序列排序,最终将各子序列排序
希尔排序:又称"缩小增量排序",将相隔单元增量的两个元素比较,据大小互相调换位置
选择排序:将第一个元素与其下的所有元素比较,据大小相互调换位置,如此循环
堆排序:将n个元素看成一棵二叉树,一层一层的子节点与父节点相互间比较,如此据大小调换位置
冒泡排序:从n个元素从最后一个元素,与其上一个元素一个一个的比较,据大小调换位置
快速排序:"划分交换排序",用一个基准,(自左向右或自右向左)将其他的元素与其比较,且交换位置
归并排序:将已排序好的子序列合并成一个整体的序列
这是我自己的一些见解,可能不是很全面,但大致的意思也差不多,希望对您有帮助,加油啊!!
参考技术D 一个“.”就解决了的
你自己到那后面弄哥点 一排排的方法出来了

以上是关于《达芬奇密码》中有哪几种解密方法?的主要内容,如果未能解决你的问题,请参考以下文章

分组密码的五种工作模式

JAVA中有哪几种常用的排序方法?每个排序方法的实现思路是如何的?每个方法的思想是啥??

php 都有哪些可解密的加密算法

RSA加解密原理以及三种填充模式

在垃圾回收器中有哪几种判断是否需要被回收的几种方法

前端js几种加密/解密方法