![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algorithm
Korea-pc
这个作者很懒,什么都没留下…
展开
-
排序算法—插入排序
插入排序Java实现:/** * 数组中5个数排序:插入排序 * 将每一个元素插到其他已经有序的序列中的适当位置 * begin:起始索引位置 * end:结束索引位置 */ public static void insertSort(int[] arr, int begin, int end) { for...原创 2018-09-04 22:05:00 · 850 阅读 · 0 评论 -
BFPRT算法
/** * BFPRT算法:TOP-K问题 * 在一大堆数中求其第k大或第k小的问题 * 又称中位数的中位数算法,最坏时间复杂度为O(n) * Q1:快速排序的平均复杂度为O(nlogn),但最坏时间复杂度为O(n2),不能始终保证较好的复杂度。 * Q2:我们只需要前k大的,而对其余不需要的数也进行了排序,浪费了大量排序时间。 * 快速排序: * ...原创 2018-09-05 00:50:07 · 256 阅读 · 0 评论 -
IP地址归属地查询算法
IP地址归属地查询: 将IP地址转换成数值型,进行范围匹配 Java版:/** * ip地址转换成Long类型数值,用以匹配ip地址所属地 */ public static Long ip2Long(final String ip) { String[] strs = ip.split("\\."); Lo...原创 2018-09-02 09:39:11 · 3915 阅读 · 0 评论 -
二分查找(折半查找)算法
Java:/** * 二分查找: * 优点:比较次数少,查找速度快 * 缺点:要求待查序列有序 * return 索引位置,查找不到返回-1 */ public static int binarySearch(int num, int[] arr) { int start = 0; ...原创 2018-09-02 10:24:56 · 244 阅读 · 0 评论 -
排序算法—冒泡排序
冒泡排序算法的原理如下: - 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 - 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 - 针对所有的元素重复以上的步骤,除了最后一个。 - 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 Java:public static void arraySo...原创 2018-09-02 11:49:41 · 111 阅读 · 0 评论 -
排序算法——快速排序
快速排序:排序过程如图:(1)Java代码实现/** * 快速排序:对冒泡排序的一种改进,基本思想是选取一个记录作为枢轴,经过一趟排序,将整段序列分为两个部分, * 其中一部分的值都小于枢轴,另一部分都大于枢轴。然后继续对这两部分继续进行排序,从而使整个序列达到有序。 * @param arr 待排序数组 * @param begin 起始索引 * @param end...原创 2018-10-25 19:58:53 · 192 阅读 · 0 评论 -
排序算法——归并排序
归并排序排序过程:通过"从下往上的归并排序"来对数组{80,30,60,40,20,10,50,70}进行排序时:将数组{80,30,60,40,20,10,50,70}看作由8个有序的子数组{80},{30},{60},{40},{20},{10},{50}和{70}组成。将这8个有序的子数列两两合并。得到4个有序的子树列{30,80},{40,60},{10,20}和{50,70}...原创 2018-10-26 08:25:26 · 198 阅读 · 0 评论