算法
摸石头
这个作者很懒,什么都没留下…
展开
-
直接插入排序
/** * <p>将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。</p> * <p>即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。</p> * @author maosx * */ public class InsertionSort { public static void main(String[]原创 2017-05-20 16:15:02 · 310 阅读 · 0 评论 -
希尔排序
/** * <p>先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。</p> * @author maosx * */ public class ShellSort { public static void main(String[] args) { int array[] = new原创 2017-05-20 16:40:38 · 219 阅读 · 0 评论 -
快速排序
/** * <p>选择一个基准元素,通常选择第一个元素或者最后一个元素</p> * <p>通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的 元素值比基准值大。</p> * <p>此时基准元素在其排好序后的正确位置</p> * <p>然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。</p> * @author maosx原创 2017-05-20 16:56:58 · 306 阅读 · 0 评论 -
选择排序
/** * <p>在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;</p> * <p>然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换。</p> * <p>依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。</p> * @author maosx * */ public class SelectionSort { p原创 2017-05-20 17:09:44 · 238 阅读 · 0 评论 -
归并排序
public class RecursiveMergeSort { public static void main(String[] args) { int[] data = new int[] { 5, 3, 6, 2, 1, 9, 4, 8, 7 }; print(data,"init"); // sort(data);原创 2017-05-20 17:34:44 · 184 阅读 · 0 评论 -
二分查找
public class BinarySearch { public static void main(String[] args) { int array[] = new int[]{5,2,9,4,11,10}; System.out.println(binarySearch(array,11)); } public static int原创 2017-05-20 17:24:28 · 257 阅读 · 0 评论 -
冒泡排序
/** * <p>在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。</p> * <p>即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。</p> * @author maosx * */ public class BubbleSort { public static void mai原创 2017-05-20 17:15:53 · 322 阅读 · 0 评论 -
堆排序
public class HeapSort { public static void main(String[] args) { int[] array = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3 }; heapSort(array); for(int a : array){原创 2017-05-21 14:28:17 · 237 阅读 · 0 评论 -
hashmap、concurrenthashmap原理解析
hashmap原理解析 concurrenthashmap原理解析 concurrenthashmap原理解析二 hash方法转载 2018-04-12 15:03:24 · 231 阅读 · 0 评论