快速排序指的是从一个数组中选择一个数然后分别从数组的最左边和最右边进行遍历
左边如果发现比选中的数大的就停下来
右边如果发现比选中的小的就停下来
然后左右交换
下面代码细嗦
import java.util.Arrays; public class Quicksort { public static void main(String[] args) { int[] arr = {-19,20,0,-4,-4,26,33,-7}; sort(arr,0,arr.length-1); System.out.println(Arrays.toString(arr)); } //这部分来细嗦一下 //传入最left跟right是为了方便递归 public static void sort(int[] arr,int left, int right){ int l=left; int r=right; int mind=arr[ (l+r)/2]; int temp=0; while(lmind){ r=r-1; } if(l>=r){ break; } //这部分是为了把上面找到的两个数放到正确的位置 temp=arr[l]; arr[l]=arr[r]; arr[r]=temp; if(arr[l] == mind){ l++; } if(arr[r]==mind) { r--; } } if(l==r){ l=l+1; r=r-1; } //下面两个是向左递归跟向右递归 if(left l){ sort(arr, l, right); } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)