第五章基础题目选解内容摘要:

,就使其向上 漂浮 ,如此反复进行,直至最后任何两个气泡都是轻者在上,重者在下为止。 主要的排序办法: 冒泡排序 快速排序 堆排序 合并排序 插入排序 桶排序 基数排序 希尔排序 快速排序 快速排序是竞赛中经常需要使用的算法,特别是高中的信息学比赛 ,可以说快速排序算法是必须非常熟悉的。 而ACM中可以使用 C,C++函数, qsort和 sort函数。 直接调用即可排序,所以不少同学估计都没有自己写过快速排序的代码。 而快排里面使用的分治思想很实用。 快排思路: X作为某段数据的标识,让比 X小的都排在左边,比 X大的都排在右边。 1步,直到所有数据都排好序。 堆排序 堆排序需要维护的堆的性质要满足: ,而且是完全二叉树(除了最后一层都是满的,最后一层先把左边填满) ,要保证父节点的值大于两个子节点的值。 (最小堆同理) 二叉树的数据结构是用数组来表示的,完全二叉树的性质有 父节点坐标 *2 = 左儿子坐标, 父节点坐标 *2 + 1 = 右儿子坐标。 流程: ,让数组满足堆的性质。 ,放到堆尾,并将堆的大小减去 1,直到剩下一个元素不用排序为止。 习题 8: 字母重排 输入一个字典(用 ******结尾),然后再输入若干单词。 每输入一个单词 w,你都需要在字典中找出所有可以用 w的字母重新排后得到的单词,并按照字母字典序从小到大的顺序在一行中输出(如果不存在,输出:()。 输入单词之间用空格和空行隔开,且所有输入单词都由不超过 6个小写字母组成。 注意,字典中的单词不一定按字典序排列。 qsort七种排序方法 一、对 int类型数。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。