经典排序算法
文章平均质量分 89
经典排序算法
SUNbrightness
一个全栈工程师,什么都会一点点。一直被人劝做一个资深Java。
但是自己始终认为语言与框架只是工具,我更喜欢用这些工具去创造,去实现自己的价值。
展开
-
java 排序算法专用测试类 生成随机数组并测试用
生成随机数组并用于测试import java.util.ArrayList;import java.util.Arrays;import java.util.Random;public class SortTestList extends ArrayList<SortTestList.SortTest> { SortTestList(int maxLimit, int len){ Random random = new Random(); for (int i = 0原创 2021-01-26 14:43:40 · 268 阅读 · 0 评论 -
快速排序 java实现 原理讲解 三种方式
起因在看到自己两年前写的文章https://blog.csdn.net/SUNbrightness/article/details/79251452后,看了半天看不懂,想不起当年的思路了。甚至连快速排序是什么都忘记了。此时的我意识到,认认真真写一篇博客有多重要,不光为了分享,也是为了自己将来能够回顾。快速排序步骤随便选一个【基准数】(一般就是第一个数,方便代码实现)根据这个 【基准数】进行【特殊排列】:使左边的数都小于【基准数】右边的数都大于【基准数】第二步完成后【基准数】有了...原创 2021-01-26 14:39:18 · 745 阅读 · 2 评论 -
堆排序(非递归版本)
import java.util.Arrays;public class Main { /** * @param args */ //堆排序 //原理 先构建一个构建一个都是大根堆的完全二叉树 // 5 // 3 4 // 1 2 //一颗二叉树 父节点永远比两个子节点都大。这个叫做大根堆 //时间复杂度 O(N*logN) //...翻译 2018-02-04 11:37:49 · 466 阅读 · 0 评论 -
快速排序+随机快速排序
public class Main { /** * @param args */ //随机快速排序 //原理 不断的将一个基准左右有序 然后返回基准的左右下标 public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = {0, -4, -1, 6, 8, 8...原创 2018-02-04 10:52:40 · 402 阅读 · 0 评论 -
java 中 sort 排序内部实现原理
首先先判断需要排序的数据量是否大于60小于60:使用插入排序,插入排序是稳定的大于60的数据量会根据数据类型选择排序方式。基本类型:使用快速排序。因为基本类型。1、2、2都是指向同一个常量池不需要考虑稳定性。Object类型:使用归并排序。应为归并排序具有稳定性。归并排序。在子规模数据量小于60时,子规模使用插入排序...原创 2018-02-21 10:09:06 · 1916 阅读 · 0 评论