2020.7.10

一、今日学习内容:

3.1和3.2的比较值机器数字排序。

(1)比较值:比如在比较最大值的时候,可以使用for循环,也可以使用另一种方法,在遍历的过程中 使用两两相邻比较的方式找出最大值。最小值同理。

(2)排序:

冒泡排序:

选择排序:

插入排序:

快速排序:(代码实现)

public class QuickSort {
public static void main(String[] args) {
// 快速排序
int[] arrays = {-1,9,-1,3,0};
arrays = quicksort(0, arrays.length-1, arrays);
for (int i : arrays) {
System.out.print(i + " ");
}
}
public static int[] quicksort(int i, int j, int[] arrays) {
if (i >= arrays.length) {
return arrays;
}
int base = arrays[i];// 基准值
for (; j > i; j--) {
if (arrays[j] < base) {// 出现基准数右边的数比基准数小
for (int k = i;; k++) {
if (k == j) {
int temp = arrays[j];
arrays[j] = base;
arrays[i] = temp;
// 对所有比基准数小的数快速排序
quicksort(j + 1, arrays.length-1, arrays);
// 对所有比基准数大的数快速排序
quicksort(i, j, arrays);
return arrays;


} else if (arrays[k] > base) {//出现基准数左边的数比基准数大
int temp = arrays[k];
arrays[k] = arrays[j];
arrays[j] = temp;
break;
}
}

}
// 当基准数右边的数都比基准数大,对所有比基准数大的数快速排序
return quicksort(i + 1, arrays.length-1, arrays);
}
}

二、遇到的问题:

插入排序在网站查阅的,快速排序不太明白,没搞懂。

三、计划:

明天继续学习3.3、3.4,阅读《大道至简》的前一部分。

原文地址:https://www.cnblogs.com/marr/p/13447904.html