![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
JZ彭于晏
这个作者很懒,什么都没留下…
展开
-
算法六之快速排序
/** * 快速排序就是选取数组中的一个基准值p * 遍历整个数组 比p小的放到左边 比p大的放到右边 **/public class Quick { static void sort(int[] arr){ sort(arr, 0, arr.length - 1); } static void sort(int[] arr, int low, int hi){ if(low >= hi){ return;原创 2020-11-18 09:56:45 · 90 阅读 · 0 评论 -
算法五之归并排序
public class Merge { static int[] tmp; //临时数组 归并的时候需要用到 static void sort(int[] arr){ sort(arr, 0, arr.length - 1); } /** * 调用递归先对数组进行分组 */ static void sort(int[] arr, int low, int hi) { if(low >= hi){原创 2020-11-18 00:00:56 · 70 阅读 · 0 评论 -
算法四之希尔排序
public class Shell { /** 希尔排序类似于插入排序 只是在进行插入排序之前先进行了分组 */ static void sort(int[] arr){ int h = 1; while(h < arr.length/2){ h = h*2 + 1; //确定初始增长量 } while (h >= 1){ //进行排序 for原创 2020-11-17 18:24:49 · 113 阅读 · 0 评论 -
算法三之插入排序
public class Insertion { static void sort(int[] arr){ for (int i = 0; i < arr.length-1; i++) { for (int j = i+1; j >=1 ; j--) {//每次拿一个数从后往前进行比较 if(arr[j] < arr[j-1]){//如果比前面的数更小 则交换位置 继续往前比较原创 2020-11-17 11:57:32 · 47 阅读 · 0 评论 -
算法二之选择排序
public class Selection { static void sort(int[] arr){ for (int i = 0; i < arr.length-1; i++) { int minIndex = i;//先假设一个最小数 并记录下索引 for (int j = i+1; j < arr.length; j++) { if(arr[minIndex] > arr[j原创 2020-11-17 10:45:35 · 44 阅读 · 0 评论 -
算法一之冒泡排序
public class Bubble { static void sort(int[] arr){ boolean flag; for (int i = 0; i < arr.length-1; i++) { flag = true;//假设数据已经是顺序排列 for (int j = 0; j < arr.length - i -1; j++) { if (arr[j] &原创 2020-11-17 09:13:00 · 61 阅读 · 0 评论