核心数据结构
小丽0228
这个作者很懒,什么都没留下…
展开
-
快速排序
package core_data_structure; public class QuickSort_test1 { /** * 快速排序:由小到大的顺序 * @param args */ public static void main(String[] args) { int [] array={2,5,44,22,8,9,0,2,3,88,77}; System.out.print...原创 2019-04-03 08:35:44 · 106 阅读 · 0 评论 -
归并排序--JAVA
1.归并排序的思想 分而治之:将一个大数组均分为两个大小相等的数组(奇数容量下有 1 的差值),然后进行排序的话,时间就从对T = O(n^2)操作变成了2*O((n/2)^2) =2*O((n^2)/4) = O(n^2) / 2 = T / 2,时间缩小了一倍,我们将这个过程循环下去,直到所有数组都被分成一个元素为止,由归纳可得时间为O(n*lgn),之后进行循环有序合并,那么明显时间为O(...转载 2019-04-28 21:34:03 · 108 阅读 · 0 评论 -
我最喜欢的快速排序算法
快速排序+改进版(邓俊辉老师讲授) 我非常喜欢这个算法,看了这么多快速排序,这个快速排序由简入深,还有快速排序的改进版,真是赞叹,他们真厉害,最简单的从两头同步开始找轴点,我都看了好几天,好不容易理解了,发现邓俊辉老师不仅由实例,看不懂了,再听听他的课,就很容易理解了,可以去学堂在线(http://www.xuetangx.com),不过我还需要好好再深入理解和练习体会算法的美丽和...原创 2019-04-03 20:17:14 · 826 阅读 · 0 评论 -
数据结构九大排序算法的相关记忆故事(持续更新)
数据结构九大排序算法的相关记忆故事(持续更新) 1.关于稳定性: 不稳定:快选堆希(快速排序、选择排序、堆排序、希尔排序) 稳 定:插冒归计基(简单插入排序、冒泡排序、归并排序、计数排序、基数排序) 稳定性的记忆方法还不是太好,你有没有想到一个好的记忆方法?欢迎分享 2.关于移动次数和关键字顺序无关的排序 顺口溜:一堆(堆排序)海龟(归并排序)选择(选择...原创 2019-04-03 16:41:42 · 683 阅读 · 0 评论 -
快速排序是另一个分而治之排序算法。归并排序的重点在于合并,快速排序的重点在于分
快速排序是另一个分而治之排序算法。归并排序的重点在于合并,快速排序的重点在于分。 那么如何分呢?重点在于寻找轴点轴点需要满足的条件:其左侧元素都比其小,右侧元素都要比其大。 对于一个数组,起始为lo,结束为hi,轴点为pivot。通过每次选取不同的轴点,将轴点移动至某一位置,使得满足此条件:其左侧元素都比其小,右侧元素都要比其大。 如下图: ---------------...原创 2019-04-03 15:59:31 · 290 阅读 · 0 评论 -
最简单易懂的归并排序
(一) 归并排序 归并排序(Merge Sort):归并排序的核心思想还是蛮简单的。如果要排序一个数组,我们先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了。 归并排序使用的就是分治思想,分治,顾名思义,就是分而治之,将一个大问题分解成小的子问题来来解决。小的子问题解决了,大问题也就解决了。 分治算法一般都是用递归来实现的。分治是一种解...原创 2019-04-03 14:40:13 · 552 阅读 · 0 评论 -
秒懂快速排序算法:变种(JAVA)
参考邓俊辉教授的C++代码修改的JAVA版变种快速排序: 版本A快速排序: 版本B快速排序: 快速排序变种的实现: private static void quickSort(int[] array, int low, int high) { int i = low, j = high; while (i < j) { int pivot = array[i...原创 2019-04-15 21:31:29 · 289 阅读 · 0 评论 -
简单易懂的快速排序
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序,快...转载 2019-04-03 08:35:08 · 148 阅读 · 0 评论 -
总结快速排序方法
3,用普通话描述[快速排序算法]原理 3.1 QuickSort方法一: 快速排序适合大规模的数据排序, 快速排序都用到了分治思想 ,快速排序是一种原地、不稳定排序算法。 .快速排序的处理过程是由上到下,先分区,然后再处理子问题。 快排的思想是这样的:如果要排序数组中下标从 p 到 r 之间的一组数据,我们选择 p 到 r 之间的任意一个数据作为pivot(分区点)。 我们遍历p到r之...原创 2019-04-03 08:35:34 · 363 阅读 · 0 评论 -
HIVE体系结构
1、Hive架构与基本组成 下面是Hive的架构图。 图1.1 Hive体系结构 Hive的体系结构可以分为以下几部分: (1)用户接口主要有三个:CLI,Client 和 WUI。其中最常用的是CLI,Cli启动的时候,会同时启动一个Hive副本。Client是Hive的客户端,用户连接至Hive Server。在启动 Clien...原创 2019-04-24 12:22:59 · 815 阅读 · 0 评论