2022-03-13 11k words 10 mins. 关于JDK中的Arrays.sort排序方法 是这样的,我们在刚学数据结构时候,都会学什么八大排序算法乱七八糟的,但是真正在写 Java 项目时,都是直接化身 API 调用工程师, Arrays.sort() 完事,无意间点开,其实里面的玄机另有洞天。 more...
2022-03-13 2.1k words 2 mins. 归并排序 # 归并排序(稳定) 归并排序是建立在归并操作上的一种有效的排序算法,1945 年由约翰・冯・诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。 more...
2022-03-12 847 words 1 mins. 冒泡排序 # 冒泡排序(稳定) # 1、基本思想 冒泡排序( Bubble Sort )是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢 “浮” 到数列的顶端。 more...
2022-03-12 660 words 1 mins. 选择排序 # 选择排序(不稳定)ON2 从算法逻辑上看,选择排序是一种简单直观的排序算法,在简单选择排序过程中,所需移动记录的次数比较少。 # 1、基本思想 选择排序的基本思想:比较 + 交换。 在未排序序列中找到最小(大)元素,存放到未排序序列的起始位置。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。 # 2、算法描述 ①. 从待排序序列中,找到关键字最小的元素; ②. 如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换; ③. 从余下的 N - 1 个元素中,找出关键字最小的元素,重复①、②步,直到排序结束。 #... more...
2022-03-12 1.2k words 1 mins. 直接插入排序 # 插入排序(稳定) 一般来说,插入排序都采用 in-place 在数组上实现。具体算法描述如下: ①. 从第一个元素开始,该元素可以认为已经被排序 ②. 取出下一个元素,在已经排序的元素序列中从后向前扫描 ③. 如果该元素(已排序)大于新元素,将该元素移到下一位置 ④. 重复步骤 3,直到找到已排序的元素小于或者等于新元素的位置 ⑤. 将新元素插入到该位置后 ⑥. 重复步骤②~⑤ more...
2022-03-12 4.3k words 4 mins. 快速排序 # 快排 (不稳定) 快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分的所有数据要小,再按这种方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,使整个数据变成有序序列。 # 快速排序的原理 more...
2022-02-19 5.5k words 5 mins. 正则表达式 # 正则表达式中的特殊字符 # 正则表达式中的特殊字符(📖表示 | ) 正则真的太难学了: https://regexone.com/ 学习网站这不就来了 git + 正则 手册 好用的网站 more...