有关键字序列{235,87,18,43,121,7,98,66,54,31},请按照下列算法对这组数据元素按关键字升序排序各趟的排序结果,按照快速排序
时间: 2023-09-06 18:13:09 浏览: 39
好的,按照快速排序算法对这组数据元素进行排序,具体过程如下:
首先选取一个枢轴元素,可以选择第一个元素235作为枢轴。
第一趟排序:
将枢轴元素235与序列中最后一个元素31交换位置,将枢轴元素放到序列的末尾。
从序列开头开始,设置两个指针i和j,分别指向第一个和最后一个元素。
从j开始向前扫描,找到第一个小于等于枢轴元素的元素,将其与i指向的元素交换位置。
接着从i开始向后扫描,找到第一个大于等于枢轴元素的元素,将其与j指向的元素交换位置。
重复以上两步,直到i和j相遇。
将枢轴元素放到i和j相遇的位置。
第一趟排序结果为:{31, 87, 18, 43, 121, 7, 98, 66, 54, 235}
第二趟排序:
以i和j相遇的位置i作为新的枢轴元素。
将枢轴元素i与序列中最后一个元素54交换位置,将枢轴元素放到序列的末尾。
从序列开头开始,设置两个指针p和q,分别指向第一个和最后一个元素。
从q开始向前扫描,找到第一个小于等于枢轴元素的元素,将其与p指向的元素交换位置。
接着从p开始向后扫描,找到第一个大于等于枢轴元素的元素,将其与q指向的元素交换位置。
重复以上两步,直到p和q相遇。
将枢轴元素放到p和q相遇的位置。
第二趟排序结果为:{31, 18, 7, 43, 54, 235, 98, 66, 121, 87}
第三趟排序:
以p和q相遇的位置p作为新的枢轴元素。
将枢轴元素p与序列中最后一个元素87交换位置,将枢轴元素放到序列的末尾。
从序列开头开始,设置两个指针m和n,分别指向第一个和最后一个元素。
从n开始向前扫描,找到第一个小于等于枢轴元素的元素,将其与m指向的元素交换位置。
接着从m开始向后扫描,找到第一个大于等于枢轴元素的元素,将其与n指向的元素交换位置。
重复以上两步,直到m和n相遇。
将枢轴元素放到m和n相遇的位置。
第三趟排序结果为:{7, 18, 31, 43, 54, 66, 87, 98, 121, 235}
排序完成,最终结果为:{7, 18, 31, 43, 54, 66, 87, 98, 121, 235}。