快速排序的原理
1个回答
展开全部
快速排序算法通过多次比较和交换来实现排序,其排序流程如下:
(1)首先设定一个分界值,通过该分界值将数组分成左右两部分。
(2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。
(3)然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理。
(4)重复上述过程,可以看出,这是一个递归定义。通过递归将左侧部分排好序后,再递归排好右侧部分的顺序。当左、右两个部分各数据排序完成后,整个数组的排序也就完成了。
【总的来说就是:】————先定第一个分界值,以分界值为基准,左边的是从前往后依次与分界值进行比较,直到遇见比它大的值就二者交换位置,右边的是从后往前依次与分界值进行比较,直到遇到比它小的值就二者交换位置(这只是第一趟);之后会以第一个分界值为准,在左边、右边区域各自重新设置一个分界值,两边分别都像第一趟一样去依次比较;
(1)首先设定一个分界值,通过该分界值将数组分成左右两部分。
(2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。
(3)然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理。
(4)重复上述过程,可以看出,这是一个递归定义。通过递归将左侧部分排好序后,再递归排好右侧部分的顺序。当左、右两个部分各数据排序完成后,整个数组的排序也就完成了。
【总的来说就是:】————先定第一个分界值,以分界值为基准,左边的是从前往后依次与分界值进行比较,直到遇见比它大的值就二者交换位置,右边的是从后往前依次与分界值进行比较,直到遇到比它小的值就二者交换位置(这只是第一趟);之后会以第一个分界值为准,在左边、右边区域各自重新设置一个分界值,两边分别都像第一趟一样去依次比较;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询