- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 排序算法之归并排序
归并排序> 之前曾经实现过堆排序,它用到了完全二叉树,但是堆的设计本身就是比较复杂的,而今天要实现的归并排序同样的也用到了完全二叉树的思想,这种思想比堆排序较为简单. 归并排序是利用归并的思想实现的排序算法.它的思路是:我们将具有n个序列的无序的数组序列两两合并排序后再合并,最终获得了一个有序的数组.归并排序的实现也极其简单: 1).将这个数组分成两个区间.[st
2016-11-28 21:52:30 982
原创 你到底有多少个朋友圈?
有这样一道面试题它是这样描述的:假设有n个人m对好友(存于二维数组r),如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈? 例:n=5,m=3,r={{1,2},{2,3},{4,5}},表示有5个人,1和2是好友,2和3是好友,4和5是好友,则1,2,3属于同一个朋友圈,4,5属于同一个朋友圈.结果为两个朋友圈
2016-11-28 20:30:37 724
原创 排序算法之快速排序的多种版本
快速排序 快速排序相对于其他的排序算法是较为快速的一种排序算法,主要体现在它的时间复杂度上.它的主要思想是:先选取一个值做关键字,通过一趟排序将待排序的记录分割成独立的两部分,其中一部分记录均比关键字小,另一部分记录均比关键字大,则可分别对这两部分记录继续进行排序,以达到整个有序的目的. 因此快速排序中最重要的就是划分区间,在下文的实现中我将介绍三种类型的单趟排序. 一.左
2016-11-27 22:28:02 652
原创 如何制作简易菜单?
实现一个菜单组件包括下拉菜单和弹出菜单,实现框图如下: 创建下拉菜单的基本过程: 1).新建一个JFrame框架.JFrame frame=new JFrame(); 2).新建一个菜单栏:菜单栏是窗口中的主菜单,用来包容一组菜单,只有一种构造方法:JMenuBar(). 3).把菜单栏放到新建框架frame的上方,在JFrame,JApplet和JDial
2016-11-22 18:27:28 4127
原创 排序算法之插入排序
插入排序> 对于排序相信大家都不陌生,就是将一组数据按照从大到小(降序)或者是从小到大(升序)进行排列,那仫常见的排序算法有哪些呢?我总结了以下几种常见的排序算法,在本篇文章中我只介绍插入排序中的直接插入排序和希尔排序. 直接插入排序> //升序void InsertSort(int *a,size_t size){ as
2016-11-17 16:24:57 552
原创 浅析B树的分裂过程
B-树> 最近一直在研究树的这种数据结构,今天实现了一颗适合外查找的平衡多叉树就是B树,有的地方也叫B-树(不要误读为"B减树"奥).当然了还存在B+树,B*树这里只实现B树 一.B树的性质> 一颗M阶(M>2)的B树,是一颗平衡的M路平衡搜索树,可以是空树或者满足下面几条性质> 1).根结点至少有两个孩子. 2).每个非根结点存在[M/2,M)
2016-11-12 13:02:50 10002
原创 位图的应用之海量数据查找
位图> 一.什仫是位图> 顾名思义位图就是用每一位来保存数的状态的结构.位图是bitMap的缩写,适用于大规模数据但是数据状态又不是很多的情况的,因为一个位只有0和1两种状态,所以位图就是只用每一位来保存数的状态的结构. 二.一道海量数据查找的题> 在了解了位图的概念之后我们发现位图通常用于大规模的数据而且用于判断某一个数是否在这个范围之内,在这里就引出了这样一道海量
2016-11-09 10:58:54 909
原创 关于哈希表的一点理解
哈希表> 哈希表也叫散列表,是依据关键码值(key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中的一个位置来访问记录,以加快查找的速度.这个映射函数叫做散列函数,存放记录的数组叫散列表. 了解了什仫是哈希表之后,我们发现哈希表这种数据结构是类似于线性表的,只是表中的元素不是精密排列的,而是可能存在空间. 比如我们存储70个元素,但是我们
2016-11-02 21:12:21 1647
计算机网络的一点使用技巧
2016-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人