
Java
holysll
没有在深夜痛哭过的人,不足以谈人生
展开
-
【知识储备库】C++ 与Java的主要区别?
C++和java都是面向对象,在一些语法结构和对象的处理的区别如下:1.指针 JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了C/C++语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说JAVA没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。这有利于Java程序的安全。2.多重继承 C++支持多重...原创 2019-03-22 11:49:14 · 146 阅读 · 0 评论 -
【算法-排序】桶排序
桶排序(Bucket sort)即箱排序,是计数排序的升级版,它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。工作的原理是将数组分到有限数量的桶里,每个桶再个别排序,有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间。但桶排序并不是比较排序,他不受到下限的影响。 为了使桶排序更加高效,我们需要...转载 2019-04-22 21:09:53 · 200 阅读 · 0 评论 -
【算法-排序】快速排序
快速排序(Quick sort)最早由东尼·霍尔提出,它又称划分交换排序(partition-exchange sort),简称快排。在平均状况下,排序 个项目要次比较。在最坏状况下则需要次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治法(Divide...转载 2019-04-15 00:51:03 · 347 阅读 · 0 评论 -
【算法-排序】归并排序
归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。归并算法指的是将两个已经排序的序列合并成一个序列的操作。归并排序算法依赖归并操作 采用分治法:分割:递归地把当前序列平均分割成两半。 集成:在保持元素顺序的同时将上一步得到的子序列集成到一起(归并...转载 2019-04-15 00:04:11 · 291 阅读 · 0 评论 -
【算法-排序】希尔排序
希尔排序(Shell sort),是以其设计者希尔(Donald Shell)的名字命名的,同时也称递减增量排序算法,是插入排序的一种更高效的改进版本,是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率; 但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位; ...转载 2019-04-14 23:22:25 · 285 阅读 · 0 评论 -
【算法-排序】插入排序
插入排序(Insertion Sort)是一种简单直观的排序算法,插入排序虽然没有冒泡排序和选择排序那么简单粗暴,它的原理打扑克牌时抓牌插入的原理是一样的。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序,因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。插入排序...转载 2019-04-14 21:50:16 · 324 阅读 · 0 评论 -
【算法-排序】选择排序
选择排序(Selection sort)是一种简单直观的排序算法,无论什么数据进去都是 的时间复杂度。所以用到它的时候,数据规模越小越好,好处可能就是不占用额外的内存空间了吧。选择排序的主要优点与数据移动有关,如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对个元素的表进行排序总共进行至多次交换。在所有的完全依靠交换...转载 2019-04-12 23:19:40 · 160 阅读 · 0 评论 -
【算法-排序】冒泡排序
冒泡排序(Bubble Sort)是一种最简单的排序算法,每次把前一个和后一个比较大小,若前一个比后一个大,这交换位置,依次遍历把两者中大的数放到后面去,迭代到后面最大的会放到最后面,较小的就会向前面移动,所以叫冒泡。 1. 算法步骤 (1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。 (2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对...转载 2019-04-12 22:39:13 · 264 阅读 · 0 评论 -
【算法-排序】计数排序
计数排序(Counting Sort)是一种稳定的线性时间排序算法,该算法于1954年由 Harold H. Seward 提出。计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。计数排序使用一个额外的数组,其中第i个元素是待排序数组中值等于的元素的个数。然后根据数组来将中的元素排到正确的位置。...转载 2019-04-16 01:05:43 · 294 阅读 · 0 评论 -
【算法-排序】堆排序
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。分为两种方法: (1)大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列; (2)小顶堆:每个节点的值都小于或等于其子节点的值,...转载 2019-04-16 00:48:56 · 199 阅读 · 0 评论 -
【算法-排序】十大经典排序算法
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序。用一张图概括:关于时间复杂度1. 平方阶 排序 各类简单排序:冒泡排序、选择排序、插入排序。...转载 2019-04-11 23:37:28 · 180 阅读 · 0 评论 -
【Spring 知识点】10分钟详解Spring全家桶7大知识点
10分钟详解Spring全家桶7大知识点Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。有人亲切的称之为:Spring 全家桶。很多研发人员把spring看作心目中最好的java项目,没有之一。工作中必须会,面试时肯定考。那么,今天花10分钟,梳理...原创 2019-04-06 18:32:20 · 650 阅读 · 0 评论 -
【算法-排序】基数排序
基数排序(Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。 基数排序 vs 计数排序 vs 桶排序 基数排序有两种方法: 这三种排序算法都利用了桶的概念,但对桶的使用方法上有明显差异: (1)...转载 2019-04-22 21:31:30 · 249 阅读 · 0 评论