Java数据结构与算法
Java数据结构与算法
AYJCSGM
屠龙者终将成为恶龙。
展开
-
雪花算法
雪花算法的起源 雪花算法原理 雪花算法java实现 一些细节讨论 调整比特位分布 workerid一般如何生成 雪花算法的起源snowflake中文的意思是 雪花,雪片,所以翻译成雪花算法。它最早是twitter内部使用的分布式环境下的唯一ID生成算法。在2014年开源。开源的版本由scala编写,大家可以再找个地址找到这版本。https://github.com/twitter-archive/snowflake/tags雪花算法产生..原创 2020-05-21 12:58:13 · 8948 阅读 · 1 评论 -
介绍一下常用的四种查找算法
在java中,我们常用的查找有四种:1) 顺序(线性)查找2) 二分查找/折半查找3) 插值查找4) 斐波那契查找线性查找算法有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提 示找到,并给出下标值。代码实现:public class SeqSearch { public st...原创 2020-05-03 12:22:01 · 459 阅读 · 1 评论 -
排序算法之基数排序详解
1、基本介绍基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。它是属于稳定性的排序,基数排序法的是效率高的稳定性排序法。基数排序(Radix Sort)是桶排序的扩展,是将整数按位数切割成不同的...原创 2020-05-03 10:49:03 · 1030 阅读 · 0 评论 -
排序算法之归并排序详解
1、基本介绍归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略。分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之。基本思想:2、归并排序思路图解在归并排序中,最为重要的一步就是“并”,比如上图中的最后...原创 2020-05-02 20:15:32 · 596 阅读 · 0 评论 -
排序算法之快速排序详解
1、基本介绍快速排序(Quicksort)是对冒泡排序的一种改进。基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。2、快速排序图解动图演示:小结快速排序规则:快速排序使用分治法...原创 2020-05-02 19:18:11 · 360 阅读 · 0 评论 -
排序算法之希尔排序详解
前言在我写的插入排序详解中,有可能出现下面的问题。数组 arr = {2,3,4,5,6,1} 这时需要插入的数 1(最小), 这样的过程是:{2,3,4,5,6,6}{2,3,4,5,5,6}{2,3,4,4,5,6}{2,3,3,4,5,6}{2,2,3,4,5,6}{1,2,3,4,5,6}结论: 当需要插入的数是较小的数时,后移的次数明显增多,对效率有影...原创 2020-05-01 20:00:29 · 642 阅读 · 0 评论 -
排序算法之插入排序详解
1、基本介绍插入式排序属于内部排序法,是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插...原创 2020-05-01 15:52:59 · 874 阅读 · 0 评论 -
排序算法之选择排序详解
1、基本介绍选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。它的基本思想是:第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]~arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]~arr[n-1]中选取最小值,与arr[2]交换,…,第i次从arr[i-1]~ar...原创 2020-05-01 15:12:59 · 592 阅读 · 0 评论 -
排序算法之冒泡排序详解
1、基本介绍冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换...原创 2020-04-30 19:14:09 · 618 阅读 · 0 评论 -
从时间、空间角度聊聊排序算法
1、排序算法的介绍排序也称排序算法(SortAlgorithm),排序是将一组数据,依指定的顺序进行排列的过程。2、排序的分类1) 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。2) 外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。3) 常见的排序算法分类(见右图):3、算法的时间复杂度 度量一个...原创 2020-04-30 17:49:25 · 587 阅读 · 0 评论