您的位置 首页 > 德语词汇

quickset是什么意思?用法、例句 QuickSort(快速排序)

大家好,今天小编来为大家解答quickset是什么意思?用法、例句这个问题,QuickSort(快速排序)很多人还不知道,现在让我们一起来看看吧!

quickset是什么意思?用法、例句 QuickSort(快速排序)

1、快速排序是由东尼·霍尔所发明的一种排序算法。

2、快速排序是使用分治的思想,把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。

3、如果要排序数组中下标从p到r之间的任意一个数据作为pivot(分区点)。

4、遍历p到r之间的数据,将小于pivot的放到左边,将大于pivot的放到右边,pivot放到中间。

5、经过这一步骤之后,数组p到r之间的数据就被分成了三个部分,前面p到q-1之间都是小于pivot,中间是pivot,后面的q+1到r之间是大于pivot的。

6、递归地将小于基准值元素的子序列和大于基准值元素的子序列排序。

7、递归到最底部的判断条件是数列的大小是零或一,此时该数列显然已经有序。

8、privatestaticvoidquickSortInternally(int[]a,intp,intr){\nif(p>=r){return;}\n\nintq=partition(a,p,r);//获取分区点\nquickSortInternally(a,p,q-1);\nquickSortInternally(a,q+1,r);\n}\n分区点代码实现

/**\n*获取分区点\n*/\nprivatestaticintpartition(int[]a,intp,intr){\nintpivot=a[r];\ninti=p;\nfor(intj=p;j<r;j++){\nif(a[j]<pivot){\nif(i==j){\n++i;\n}else{\ninttmp=a[i];\na[i++]=a[j];\na[j]=tmp;\n}\n}\n}\n\ninttmp=a[i];\na[i]=a[r];\na[r]=tmp;\n\nSystem.out.println("partitioni="+i);\nreturni;\n}\n性能分析

快速排序是一种原地排序算法。

9、其最坏情况的时间复杂度是O(n^2),平均情况时间复杂度是O(nlogn)。

10、不像快速排序,归并排序是一个稳定排序,而且可以轻易地被采用在链表上。归并排序的主要缺点,是在最佳情况下需要O(n)额外的空间。

关于quickset是什么意思?用法、例句到此分享完毕,希望能帮助到您。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023