算法
文章平均质量分 58
LanJonah
这家伙很懒,只留下一句废话!
展开
-
归并排序算法(JAVA)
归并排序算法,先将数组,递归二分,拆分成一个个有序的数组,然后合并;/** * @Descript:归并排序算法 * * @author LanJonah 2018年2月28日 * @param array * 需要排序的数组 * @return */ private static int[] mergeSort(int array[]) { ...原创 2018-02-28 17:20:47 · 251 阅读 · 0 评论 -
冒泡排序算法(JAVA)
依次比较相邻的两个元素,如果后一个元素小于前一个元素,则交换; java实现:/** * @Descript:冒泡排序算法(相邻两两对比,小的值前置) * * @author LanJonah 2018年2月11日 * @param array */ public static void bubbleSort(int[] array){ int tmp ; ...原创 2018-02-28 17:29:39 · 579 阅读 · 0 评论 -
选择排序算法(JAVA)
从数列中选取最小的值的位置,然后和数列第一位交换;然后在剩余的数列当中找到次小的位置,和数列第二位交换;依次循环,直至排序结束; /** * @Descript:选择排序算法 * * @author LanJonah 2018年2月24日 * @param array */ public static void selectSort(int[] array){ Syste...原创 2018-02-28 17:35:23 · 198 阅读 · 0 评论 -
插入排序算法(JAVA)
类似于打牌,抽牌;检查第i个数字,如果在它的左边的数字比它大,进行交换,这个动作一直继续下去,直到这个数字的左边数字比它还要小;/** * @Descript:插入排序算法 * * @author LanJonah 2018年2月24日 * @param array */ public static void insertionSort(int[] array){ Sys...原创 2018-02-28 17:44:03 · 194 阅读 · 0 评论 -
快速排序算法(JAVA)
1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.递归,对左右区间重复第二步,直到各区间只有一个数。java实现:/** * @Descript:快速排序算法 * * @author LanJonah 2018年2月26日 * @param array * 待排序数组 * @param...原创 2018-02-28 17:52:42 · 258 阅读 · 0 评论 -
二分查找排序(JAVA)
最坏情况:logn最好情况:O(1) 平均时间复杂度为O(logn)二分查找也称折半查找,或者对半查找(Binary Search),是一种效率较高的查找方法。要求:(1)必须采用顺序存储结构 (2).必须按关键字大小有序排列将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x>a[n/2],则继续在数组a的左半边查找x,如果...原创 2018-03-01 17:52:33 · 1465 阅读 · 0 评论 -
分块查询算法(JAVA)
描述:分块查找要求索引表是有序的,对块内节点没有排序要求,因此适合于节点动态变化的情况。分块查找要求把一个大的线性表分解成若干块,每块中的节点可以任意存放,但块与块之间必须排序步骤:step1 先选取各块中的最大关键字构成一个索引表;step2 查找分两个部分:先对索引表进行二分查找或顺序查找,以确定待查记录在哪一块中;step3 然后,在已确定的块中用顺序法进行查找。索引表的长度最佳为数据总长度...转载 2018-03-12 16:54:13 · 2398 阅读 · 0 评论 -
Hash排序(JAVA)
什么是hash表:哈希表(Hash table,也叫散列表),是根据key而直接进行访问的数据结构。也就是说,它通过把key映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 哈希表的做法其实很简单,就是把key通过一个固定的算法函数即所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在...转载 2018-03-12 18:03:11 · 1420 阅读 · 0 评论