摘要: 直接上代码:递归和while版本 1 public class BinarySearch<T extends Comparable> { 2 3 /** 4 * 递归二分查找 5 * 6 * @param arr 数组 7 * @param left 左标 8 * @param right 右标 9 阅读全文
posted @ 2020-04-30 17:39 御简 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 要点:利用空间换时间,有桶排序的思想,按照基数规则转换,使空间开销较小,但理解起来比计数排序复杂的多。 1 import java.util.Random; 2 3 public class RadixSort { 4 5 public void sort(int arr[]) { 6 int ma 阅读全文
posted @ 2020-04-30 16:42 御简 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 要点:利用空间换时间,按照数组下标,对应元素。试用于都是整数,且最大最小值相差不大的情况。 1 public class CountSort { 2 3 public void sort(int[] arr) { 4 printArr(arr, " => 原数组"); 5 // 确认最大最小值 6 阅读全文
posted @ 2020-04-30 11:12 御简 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 要点:将数组作为堆结构,利用大根堆根最大的性质,构建完就将根与未排序部分的末尾交换,逐步实现有序。 1 import java.util.Random; 2 3 public class HeapSort<T extends Comparable> { 4 5 public void sort(T[ 阅读全文
posted @ 2020-04-29 18:02 御简 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 要点:利用了插入排序对于数据有序性的依赖,先对部分元素位置进行调整,再执行插入排序。整体上降低了插入排序的时间复杂度,是插入排序的改进版本。当然,人品好的,还是用插入吧。 1 import java.util.Random; 2 3 public class ShellSort<T extends 阅读全文
posted @ 2020-04-29 10:38 御简 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 要点:先递归向下拆分,再递归向上合并,合并后的元素是有序的,分而治之的思想。 为了理解起来简单,算法内部多了数组的创建过程。是可以优化的,可以看一下其它的归并版本。 1 public class MergeSort<T extends Comparable> { 2 3 private T[] so 阅读全文
posted @ 2020-04-28 14:01 御简 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 要点:分而治之,选取基准数,建立左右两个游标,两侧游标向基准数靠拢,交换元素,使左侧元素小于/大于基准数,右侧大于/小于基准数。并对左右部分进行递归。 1 import java.util.Random; 2 3 public class QuickSort<T extends Comparable 阅读全文
posted @ 2020-04-28 13:55 御简 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 重点:维护一个有序段,取后面的元素,按顺序插入到有序段中 public class InsertSort<T extends Comparable> { public void sort(T[] arr) { if (arr != null && arr.length > 1) { for (int 阅读全文
posted @ 2020-04-28 13:53 御简 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 重点:依次对比邻近值,将较大/较小值向一侧移动 public class BubbleSort<T extends Comparable> { public void sort(T[] arr) { if (arr != null && arr.length > 1) { for (int i = 阅读全文
posted @ 2020-04-28 13:52 御简 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 要点:每次从剩余的元素中,选出一个最小/最大的值 1 public class SelectSort<T extends Comparable> { 2 3 public void sort(T[] arr) { 4 if (arr != null && arr.length > 1) { 5 fo 阅读全文
posted @ 2020-04-28 13:51 御简 阅读(107) 评论(0) 推荐(0) 编辑