朝花夕拾

A Development Engineer, a Life Liver, a Hope Holder

选择排序

### 核心思想 将数组分为两个子数组,其中一个子数组为有序数组,另一个为无序数组。然后从无序数组中取到最值元素,然后依次将这些最值元素追加到有序数组中。 ​ ​ ### 实现代码 ```java public void sort(int[] arr){ for(int i = 0; i arr[j]) { minPos = j; } } swap(arr, i, minPos); } } ```...

插入排序

### 核心思想 将数组分成两部分,一部分是有序数组,一部分是无序数组。每次从无序数组中拿出一个元素,将这个元素放置到有序数组中合适的位置。直到整个数组都有序为止。 ### 代码实现 ```java public void sort(int[] arr) { for(int i = 0; i = 0; j--) { if(arr[currPos] > arr[j]) { swap(arr, j, ...

快速排序

## 思路 从数组中找一个基准元素,以基准元素将数组分成三部分: $$patition(n) = \begin{cases} x, & \text{xbaseEliment} \\ \end{cases}$$ 然后再分别对左右子数组X,Y进行排序。 可以看到,快速排序的核心方法是分区,找到分区位置,之后通过递归的方式分别对其他子数组进行分区。最后完成排序。 ​ ## 框架 ```java void...
1