自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黄俊彬

优秀是一种习惯,坚持是一种品质

  • 博客(11)
  • 收藏
  • 关注

原创 排序算法总结

1.排序算法分类基础的排序算法包含冒泡排序、选择排序、插入排序、希尔排序、堆排序、归并排序及快速排序。根据实现类型可分为插入排序类、选择排序类、交换排序类及归并排序类。2.排序算法的综合分析各算法的排序方式、平均情况、最好最坏情况、所需的辅助空间及稳定性如下:事实上,排序算法没有十全十美,本来想写一套模拟测试的数据来验证孰优孰略。但是突然发现可比性不高,需要根据

2016-12-24 15:19:16 2430

原创 排序算法-快速排序

快速排序(Quick Sort)通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小, 则可分别对这部分记录继续进行排序,以达到整个序列有序的目的最好情况o(logn)最坏情况o(n²)排序稳定,但需要额外的辅助空间 static void quickSort(int[] array, int low, int high) {

2016-12-24 11:26:43 2279

原创 排序算法-归并排序

归并排序(Merging Sort)利用归并的思想实现的排序方法。它的原理是假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列长度为1,然后两两归并,得到[n/2]个长度为2或1的有序子序列然后反复进行两两归并,直到得到一个长度为n的有序序列为止。     时间复杂度     最好情况o(nlogn)     最坏情况o(nlogn)     排序稳定,但需要额外的

2016-12-16 17:36:05 2262

原创 排序算法-堆排序

堆排序(Heap Sort)堆是具有下列性质的完全二叉树:每个节点的值都大于或等于其左右孩子节点的值,称为大顶堆,或者每个节点的值都小于或等于其左右孩子节点的值,称为小顶堆。堆排序的基本思想是,将待排序的序列构成一个大顶堆。此时整个序列的最大值就是堆顶的根节点。将它移走(其实就是将其余堆数组的末尾就是最大值),然后将剩余的n-1个序列重新构造成一个堆,这样就会得到n个元素的次小值,如此反复

2016-12-14 23:25:17 2205

原创 排序算法-希尔排序

希尔排序(Shell Sort)升级版的插入排序,先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2     时间复杂度:     1)最好情况o(n)     2)最坏情况o(n^3/2)性能高于插入排序 但不稳定。算法稳定性:通俗地讲就是能保证排序前2

2016-12-12 17:43:59 2144

原创 排序算法-插入排序

插入排序(Insert Sort)直接插入排序的基本操作是将一个记录插入到已经排好的有序表中,从而得到一个新的、记录数增1的有序表,类似打扑克牌排列表。时间复杂度:     1)最好情况o(n)     2)最坏情况o(n²/4) 插入排序比选择排序及冒泡排序性能好些 static void insertSort(int[] array) { if

2016-12-12 17:42:03 1998

原创 排序算法-选择排序

简单选择排序(Simple Selection Sort)就是通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1 时间复杂度:     1) 最好情况:本身有序,需要比较n-1次 时间复杂度为o(n)     2)最坏情况:逆序情况,需要比较(n-1)+(n-2)+...+2+1=n(n-1)/2 时间复杂度为o(n²)性能上略优于冒泡排序 减少了交换

2016-12-12 17:36:58 1960

原创 排序算法-冒泡排序

冒泡排序(Bubble BubbleSort)是一种交换排序,他的基本思路是: 两两比较相邻记录的关键字,如果反序则交换。时间复杂度:     1)最好情况:本身有序,需要比较n-1次 时间复杂度为o(n)     2)最坏情况:逆序情况,需要比较(n-1)+(n-2)+...+2+1=n(n-1)/2 时间复杂度为o(n²)每一轮的排序对下一轮的排序有帮助,数字如同气泡慢慢往

2016-12-12 17:26:29 1957

原创 查找算法-稠密索引、分块索引、倒排索引

1.稠密索引稠密索引时指在线性索引中,将数据集中的每个记录都对应一个索引项 。对于索引项一定是按照关键码有序的排列 索引项有序意味着可以使用顺序查找算法,这是稠密索引的有点, 但是如果数据集非常大,意味着索引也得有同样的数据集长度规模。public class Index { public int key; public Object value; public

2016-12-10 10:28:43 3462

原创 查找算法-顺序查找、有序查找

1.顺序表的查找1)顺序查找顺序查找又称为线性查找,是一种最简单的查找方法。        从表的一端开始,向另一端逐个按要查找的值key 与关键码key进行比较,若找到,查找成功,并给出数据元素在表中的位置;若整个表检测完,仍未找到与关键码相同的key值,则查找失败,给出失败信息。说白了就是,从头到尾,一个一个地比,找着相同的就成功,找不到就失败。很明显的缺点就是

2016-12-06 16:15:44 9529

原创 Android的Window底层原理

1.概述 Window是一个抽象类,他的实现是PhoneWindow。Window通过WindowManager创建,是访问Window的入口。Window的具体实现位于WindowManagerService中,WIndowManager与WindowManagerService的交互是一个IPC的过程。WindowManager中的Layoutparam中的Type表示Window的类

2016-12-05 12:00:12 3264

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除