首页 > 编程知识 正文

数据结构中快速排序怎么排,快速排序算法在每一趟排序中都能找到

时间:2023-05-06 01:35:13 阅读:19857 作者:4530

关于早排,无论是看别人的脸,还是看自己笔试的面试经验,都经常遇到。 所以,在这里,为了自己查,或者给其他有需要的人参考,本人只以博客的形式记录。

publicclasssortmethods {/* * span style=' white-space 3360 pre '/span * @ authorpursuecloudspanstyle=' white-space 333常见排序算法span style=' white-space : pre '/span *如果数据几乎无序,则8 例如,span style=' white-space : pre '/span * span style=' white-space 3360 pre '/span5、1、8、7、22, 44 99(18次) span style=' white-space : pre '/span * span style=' white-space 3360 pre '/span1、5、7、8、22, 44 99(28次) span style=' white-space : pre '/span */span style=' white-space 3360 pre '/spanpublicstaticvoidmain for (inta :数据固态) system.out.print ) a ' ); }System.out.println ('比较次数: ' cnt ); }/** *快速排序* /静态int CNT=0; 隐私保护分区(int [ ] data,int low,int high ) {int key=data[low]; while(lowhigh ) ) while ) lowhighdata[high]=key ) ) high----; cnt; }data[low]=data[high]; //(在这种情况下,low=high或data[high]key )将high下标的数量指定为low下标的数量,然后将data [ low ] key while (lowhighdata [ low ]=key ) low cnt; }data[high]=data[low]; //)在这种情况下,由于low=high或data[low]key,所以将low下标的数量分配给high下标的数量,data[high]key}data[low]=key; 返回低; }公共静态int [ ] quick sort (int ) data,int low,int high ) if ) lowhigh ) intresult=partition ) data,low,hit ion qult //low到result-1对下标之间的数字进行排序quicksort(data,result 1,high ); 对result 1到high下标之间的数字进行排序}返回数据; }

快列的时间复杂度,最好为o(nlgn ),最坏为低位o ) n^2。 如果要排序的数据基本上是无序的,则快速排序速度最快;如果数据基本上是有序的,则速度反而最慢。 如上所述,通过累积比较次数,比较数据有序和无序时的时间复杂性可能有些不严格,但对我来说最直观。 如上所述,对不同数据进行排序的结果,如果数据基本上是无序的数据,则cnt的值为16,基本上有序的数据为18,已经排序的数据为28,由此结果也如前所述,“”排序对象的数据基本上是”

如果PS:以上有问题,谢谢您的指正

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。