《算法(第四版)》排序-----快速排序

参考文章:   http://ahalei.blog.51cto.com/4767671/1365285


1.概念

快速排序,听这个名字就能想到它排序速度快,它是一种原地排序(只需要一个很小的辅助栈,注意不是数组),且将长度为N的数组排序所需的时间和NlgN成正比

缺点是:非常脆弱,在实现时一定要注意几个小细节(下面详细讲),才能避免错误。


2.基本思想:

随机找出一个数(通常就拿数组第一个数据就行),把它插入一个位置,使得它左边的数都比它小,它右边的数据都比它大,这样就将一个数组分成了两个子数组,然后再按照同样的方法把子数组再分成更小的子数组,直到不能分解为止。    它也是分治思想的一个经典实验(归并排序也是)


3.快速与归并排序的区别:

(1)归并排序将数组分成两个子数组,然后分别排序,并将有序的子数组归并以将整个数组排序;

         快速排序将数组排序的方式是当两个子数组都有序时整个数组也就自然有序了

(2)归并排序的递归调用发生在处理整个数组之前

        快速排序的递归调用发生在处理整个数组之后


4.举例说明
假设我们现在对“6  1  2 7  9  3  4  5 10  8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列。
      3  1  2 5  4  6  9 7  10  8

       在初始状态下,数字6在序列的第1位。我们的目标是将6挪到序列中间的某个位置,假设这个位置是k。现在就需要寻找这个k,并且以第k位为分界点,左边的数都小于等于6,右边的数都大于等于6。想一想,你有办法可以做到这点吗?

       给你一个提示吧。请回忆一下冒泡排序,是如何通过“交换”,一步步让每个数归位的。此时你也可以通过“交换”的方法来达到目的。具体是如何一步步交换呢?怎样交换才既方便又节省时间呢?先别急着往下看,拿出笔来,在纸上画画看。我高中时第一次学习冒泡排序算法的时候,就觉得冒泡排序很浪费时间,每次都只能对相邻的两个数进行比较,这显然太不合理了。于是我就想了一个办法,后来才知道原来这就是“快速排序”,请允许我小小的自恋一下(^o^)。

方法其实很简单:分别从初始序列“6  1  2 7  9  3  4  5 10  8”两端开始“探测”。先从找一个小于6的数,再从找一个大于6的数,然后交换他们。这里可以用两个变量ij,分别指向序列最左边和最右边。我们为这两个变量起个好听的名字“哨兵i”和“哨兵j”。刚开始的时候让哨兵i

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 《算法第四版)》是一本经典的计算机科学教材,由Robert Sedgewick和Kevin Wayne合著。目前,该书的PDF版本是可以在网上免费获取的,并且带有书签功能。 所谓书签,是指在PDF文件中添加的可点击的链接,用来跳转到特定的页面或章节。有了书签功能,读者可以方便地跳转到自己感兴趣的章节,从而更加高效地阅读。特别是对于《算法第四版)》这样的厚书而言,书签功能无疑是非常实用的。 使用带书签功能的《算法第四版)》PDF版本,读者可以通过点击书签快速跳转到章节标题、课后习题或者其他重要内容。这对于复习、查找相关知识点以及解决特定问题都是非常方便的。 这本书的内容非常丰富,从基础的排序和查找算法到高级的图论和网络流算法都有涉及。通过使用带书签功能的PDF版本,读者可以轻松地找到自己需要的章节,并快速导航到相应的内容。 总之,带有书签功能的《算法第四版)》PDF版本是一种很实用的阅读方式。读者可以轻松地找到自己需要的章节,提高阅读和学习的效率。同时,该版本的获取也十分便捷,让更多的人可以方便地学习和访问这本经典的教材。 ### 回答2: 算法第四版是一本非常受欢迎的计算机科学教材,许多人都希望能够在电子设备上方便地阅读和查找相关内容。为了方便大家,有很多网站提供了算法第四版的PDF版本,并且还附带书签功能。 所谓书签功能,就是在PDF文件中可以标注重要章节或内容的功能。当你打开这个带有书签的PDF文件时,就可以通过点击书签来快速跳转到相应的部分,省去了翻阅大量页码的麻烦。 在算法第四版的PDF带书签中,可以预先设置一些书签,比如每个章节的标题或者一些重要概念的名称。当你点击某个书签时,PDF阅读器会自动跳转到对应的页面,并且把此书签突出显示,方便你进行快速定位和浏览。 这样的做法不仅节省了用户的时间,提高了阅读效率,还使得用户更容易建立起对于整本书的逻辑框架的认知。同时,如果你需要频繁地在不同的章节之间来回切换,使用书签功能会使得操作更加简便和流畅。 总的来说,算法第四版的PDF带书签是一种非常方便的电子阅读方式。你可以通过互联网搜索相关网站或者论坛获取这样的PDF文件,然后在计算机或者移动设备上进行阅读,并且随时使用书签功能来进行快速导航和浏览。 ### 回答3: 算法第四版是一本经典的计算机科学教材,被广泛应用于算法设计与分析的学习与研究。有很多人希望能够在电子设备上随时随地使用这本书,因此希望有一个带书签的PDF版本。 带书签的PDF版本可以方便读者在不同章节之间快速跳转和导航,提高阅读效率和便利性。而实现这一要求也是相对简单的。 首先,我们需要找到一个能够实现生成带书签的PDF的工具。有很多工具能够满足这个需求,比如Acrobat Pro、PDFcreator等。通过这些工具,我们可以在每个章节的标题处添加书签,便于导航。 其次,我们需要按照章节的顺序将书签一一添加到PDF文件中。可以通过工具提供的功能,或者手动添加,将每个章节的标题作为书签的名称。这样,在打开PDF文件时,我们就可以通过点击书签来快速跳转到相应的章节。 最后,完成所有书签的添加后,我们可以保存生成的带书签的PDF文件。这样,读者就可以在阅读时候方便地通过书签进行导航和跳转。 总结来说,为算法第四版生成带书签的PDF版本,只需使用带有书签功能的工具,添加每个章节的书签,并保存即可。这样,读者可以在使用电子设备进行阅读时,更加方便地浏览和导航书中的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值