
算法
坟场之书
且行且珍惜
展开
-
简述归并算法
简述归并排序归并排序(Merge sort)是采用分治法的一种应用算法分治法的精髓:分–将问题分解为规模更小的子问题;治–将这些规模更小的子问题逐个击破;合–将已解决的子问题合并,最终得出“母”问题的解;如图所示,数列{5,7,6,3,9,2,1,8}先将其对半分开,直到每个数独立为一组,再进行排序合并解析数组temp的长度[right-left+1],分开后原数据的索引并没有变所以每次合并数组的长度都为right-left+1。如第一次合并数组长度:1-0+1=2,3-2+1=2… 同理原创 2021-10-23 12:54:42 · 177 阅读 · 0 评论 -
简述冒泡排序
简述冒泡排序冒泡排序,就像是在水里的泡泡一样,一点一点地往上窜,直到露出水面。而该算法就是在每一次的比较中把数列中最大的数像泡泡一样输出到数列的最左边,以此类推,就会形成一个顺序数列例如 数列{3,5,2,1,7,6,4}package sf;import java.util.Arrays;/** * @author soldier * @create 2021-10-21 14:02 */public class BubbleSort { public static v原创 2021-10-21 15:16:19 · 115 阅读 · 0 评论 -
简述希尔排序
希尔排序这破玩意真的让我想了好久,天呐,我都要怀疑人生了画图有点复杂,有空再补…希尔排序可以看作是优化版的插入排序,插入排序最大的效率体现在数列的有序性,数列的有序性越高,插入排序的效率就越高,而希尔排序就是把数列进行初步排序后再进行插入排序的一种算法,所以说希尔排序其实就是一种插入排序希尔排序的思想希尔排序,通过增量将元素两两分组,对每组使用直接插入排序算法排序;增量逐渐减少,当增量减至1时,整个数据恰被分成一组,最后进行一次插入排序,整个数组就有序了。一般会运用逐步折半的增量,比如有8个数据原创 2021-10-18 21:12:50 · 125 阅读 · 1 评论 -
简述插入排序
插入排序想象一下,打扑克的时候,手里拿着 4 5 6 8,这时来了一张7,放哪?放5,6中间啊,怎么放?插进去啊!插进去后,成为 4 5 6 7 8 这就是插入排序public class InsertSort { public static void main(String[] args) { int[] arr={3,4,2,1,64,7,8,5,30,57,765,-4,0,655}; insert(arr); for (int i :原创 2021-10-17 21:35:13 · 118 阅读 · 1 评论 -
简述选择排序
简述选择排序选择排序就是每次比较都把数据里最小的数据放到列表的左侧,不断地选择数据中最小值,所以称之为选择排序public class Selection2 { public static void main(String[] args) { int[] arr={3,4,2,1,6,7,8,5,30,57,765,-4,0,655}; selectionSort(arr); for (int i : arr) {原创 2021-10-17 19:55:41 · 124 阅读 · 0 评论