DESKTOP-QT2JO23_20200904-孙中霞
1、问题
今天是不好的一天也是好的一天,我早上整合笔记没来得及交日志,但是在今天晚上很神奇的,我又学会并弄懂了一个算法排序---快速排序,感觉学会东西的那一刻很开心!
package com.itlaobing;
public class QuickSort {
public static void quickSort(int[] arr, int left, int right) {
int i = left;//左哨兵
int j = right;//右哨兵
if (i > j) {
return;
}
int temp = arr[left];
while (i < j) {
while (i < j && temp <= arr[j]) {//从右往左找比基准值小的
j--;
}
temp = arr[j];
while (i < j && temp >= arr[i]) {//从左往右找比基准值大的
i++;
}
//在此位置左右哨兵进行位置交换
arr[j] = arr[i];
arr[i] = temp;
}
//重新定义基准值,重复以上排序方法
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
public static void main(String[] args) {
int arr[] = { 1, 5, 2, 3, 7, 4, 5, 6 };
quickSort(arr, 0, arr.length - 1);
for (int i : arr) {
System.out.println(i);
}
}
}
2、解决
先自己想,后来敲代码,后来顺着代码将数组元素再走一遍
3、吐槽
有些地方的方法太多,在做笔记的时候,写的话,太多,不写的话,以后返回到这一块的时候又不清楚
近期评论