作业帮 > 数学 > 作业

待排序序列(46,84,56,40,38,79) 第一轮处理后(40,38,46,56,84,79) 请问采用的排序算法

来源:学生作业帮 编辑:百度作业网作业帮 分类:数学作业 时间:2024/05/27 22:13:00
待排序序列(46,84,56,40,38,79) 第一轮处理后(40,38,46,56,84,79) 请问采用的排序算法是什么
如题.4个备选答案:简单选择、简单插入、快速、堆排序
待排序序列(46,84,56,40,38,79) 第一轮处理后(40,38,46,56,84,79) 请问采用的排序算法
快速排序.
46为基准.比46小的在左边,比46大的在右边.
再问: 那快速排序。。不应该38是第一位么
再答: 那是第一轮的结果啊,快速排序有好几个版本。 以46为基准,从左往右,找比46小的,第一个40,与46交换得 40,84,56,46,38,79 然后再找比46小的,38交换 40,38,56,46,84,79 再从右往左找比46大的,56交换 40,38,46,56,84,79
再问: 不对啊。。快速排序不应该一开始是尾指针自减找到比46小的(也就是38)。。与46交换么 然后首指针再自加找到比46大的(84)与新的46位置交换。。。 最后答案不应该是(38、40、46、56、84、79)
再答: 快排的版本很多哦,你网上找一下嘛, 主要思想是找基准,基准就是一个中间值,左边比他小右边比他大的值。然后采取递归方式排序。 你说的对啊,但是这个题的快排是从左往右搜索比46小的交换的。然后把下标加1再搜索。