一、今日学习内容:
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,阅读《大道至简》的前一部分。