各种排序算法总结
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3cb83e0c1d14b372ad97554cb3b001f5.png)
快速排序思想
- 设置一个pivot,把他当成一个中心轴。
- 将大于pivot的数字放到pivot的右边。
- 将小于pivot的数字放到pivot的左边。
- 分别对左右子序列重复以上操作(递归)。
代码实现
public class QueitPaixu {
public int[] quickSort(int[] nums,int L,int R){
if (L >= R){
return nums;
}
int left = L;
int right = R;
int pivot = nums[left];
while(left < right){
while (left < right && pivot <= nums[right]){
right--;
}
if (left < right){
nums[left] = nums[right];
}
while (left < right && pivot >= nums[left]){
left++;
}
if (left < right){
nums[right] = nums[left];
}
if (left == right){
nums[left] = pivot;
}
}
quickSort(nums,L,right-1);
quickSort(nums,right+1,R);
return nums;
}
public static void main(String[] args) {
int[] nums = {7,4,5,6,9,2,8};
QueitPaixu sort = new QueitPaixu();
nums = sort.quickSort(nums,0,nums.length-1);
System.out.println(Arrays.toString(nums));
}
}