快速排序算法

xiaoxiao2021-02-28  69

/** * 快速排序算法 * @param arr int[] 需要排序的数组 * @param l int 从第几位开始从左往右排 * @param r int 从第几位开始从右往左排 */ public static void quickSort(int[] arr,int l,int r){ if(l<r){ int x = arr[l],i = r,j = l; //当j = i 时,while循环终止, while(j<i){ //从右边开始寻找比x更小的数 for(;i>0;i--){ if(arr[i]<= x){ arr[j]=arr[i]; j++; break; } } //从左边开始寻找比x更大的数 for(; j < i;j++){ if(arr[j] > x){ arr[i]=arr[j]; i--; break; } } } arr[j]=x; quickSort(arr,l,j-1);//使用递归排序j项左边的项 quickSort(arr,j+1,r);//使用递归排序j项右边的项 } } //本人系java新人,代码中存在诸多不足,敬请前辈指正!!
转载请注明原文地址: https://www.6miu.com/read-84837.html

最新回复(0)