Java十大经典排序算法的实现图解
320
2022-08-23
排序算法Java版-快速排序算法
快速排序原理就是荷兰国旗问题原理,java实现如下,注意每次选定中间值需要使用随机来取,如果选取开头或者结尾的数容易遇到最坏的情况,最坏的情况的复杂度为O(n2),当使用随机方式取的时候,复杂度为O(nlogn)
package sort;import java.util.Arrays;public class QuichSort { public static void quichSort(int[] arr,int left,int right) { if(arr==null || arr.length<2 || left==right) { return; } int val=arr[left+(int)((right-left+1)*Math.random())]; int leftUpper=left-1; int rightDown=right+1; int i=left; while(i 执行结果如下:同样,这里使用了随机100万个随机长度的随机数组进行了验证,OK Nice-18 -57 8 29 22 -38 27 45 51 -31 92 -70 -18 -16 2 58 -4 86 3 50 9 24 29 -59 27 28 -37 -29 1 -1 -21 -18 3 -3 -50 53 -66 40 32 65 -52 26 33 18 43 -30 -5 12 -18 -12 62 -23 -11 -76 -8 -12 16 27 -38 -24 -6 3 44 9 51 -72 -3 0 -22 -41 -67 12 -60 22 -68 -6 -29 -81 -81 -76 -72 -70 -68 -67 -66 -60 -59 -57 -52 -50 -41 -38 -38 -37 -31 -30 -29 -29 -24 -23 -22 -21 -18 -18 -18 -18 -16 -12 -12 -11 -8 -6 -6 -5 -4 -3 -3 -1 0 1 2 3 3 3 8 9 9 12 12 16 18 22 22 24 26 27 27 27 28 29 29 32 33 40 43 44 45 50 51 51 53 58 62 65 86 92
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~