- 博客(15)
- 收藏
- 关注
原创 基数排序
基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。 说基数排序之前,我们简单介绍桶排序: 算法思想:是将阵列分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果
2015-11-26 15:13:26 595
原创 Android搜索控件的基本使用方法
在Android中,搜索是一个非常核心的功能,我们可以通过它搜索到任意我们可以获得的信息。这些信息可以是存储在手机中的联系人、文件等信息,也可以是在网络上的资源。 Android为了给用户提供良好的搜索体验,特意提供了一个搜索框架来方便开发者在自己的App中集成搜索功能。那么接下来我就学习一下这个搜索框架。 在Android的搜索框架中为我们提供了两种
2015-11-25 18:42:31 502
转载 堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两
2015-11-21 20:37:54 322
原创 Android Studio编译好的apk放在哪里
1.Eclipse下App放置在项目根目录的bin目录中2.而Android studio大改后,放在了module中,所以你一定要记得你的存放路径。也就是工程对应的文件夹。3.android studio工程的存储路径下app/build/outputs/apk(其中app是你的module,在对应的module下即可找到)
2015-11-14 20:27:56 2113
转载 堆排序
堆排序是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 堆排序的平均时间复杂度为Ο(nlogn) 。算法步骤: 1)创建一个堆H[0..n-1] 2)把堆首(最大值)和堆尾互换 3)把堆的尺寸缩小1,并调用shift_down(0),目的是把新的数组顶端数据调整到相应位
2015-11-11 21:04:18 309
转载 android Socket用法详解
在客户/服务器通信模式中, 客户端需要主动创建与服务器连接的 Socket(套接字), 服务器端收到了客户端的连接请求, 也会创建与客户连接的 Socket. Socket可看做是通信连接两端的收发器, 服务器与客户端都通过 Socket 来收发数据.这篇文章首先介绍Socket类的各个构造方法, 以及成员方法的用法, 接着介绍 Socket的一些选项的作用, 这些选项可控制客户建立与服务
2015-11-08 16:51:17 919
原创 快速排序
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分
2015-11-08 16:37:48 320
原创 Handler机制的原理
Andriod提供了Handler和Looper来满足线程间的通信.Handler先进先出原则.Looper类用来管理特定线程内对象之间的消息交换(Message Exchange).1)Looper:一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列).2)Handler:你可以构造Handler对象来与Looper沟通,以便push新消息到M
2015-11-07 18:37:05 338
原创 归并排序
归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 算法步骤: 1.申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 2.设定两个指针,最初位置分别为两个已经排序序列的起始位置 3.比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下
2015-11-07 18:21:38 363
原创 冒泡排序
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进 行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 算法步骤: 1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2)对每一对相邻元素
2015-11-06 16:49:03 280
原创 Android中的数据存储的五种方式
1.SharedPreferences:用来存储”key-value paires“格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型.2.文件存储:通过FileInputStream和FileOutputStream对文件进行操作.在Android中,文件是一个应用程序私有的,一个应用无法读写其他应用程序的文件.3.SQLite数据库存储:Android提供的一个标准数据库
2015-11-05 14:21:20 524
原创 选择排序
选择排序(Selection sort)也是一种简单直观的排序算法。思想:还是先来看看选择排序的思想。选择排序的思想非常直接,从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。可以很清楚的发现,选择排序是固定位置,找元素。相比于插入排序的固定元素找位置,是两种思维方式。 算法步骤: 1)首先在未排序序
2015-11-05 12:50:24 555
转载 Android之ContentProvider总结
1.适用场景1) ContentProvider为存储和读取数据提供了统一的接口2) 使用ContentProvider,应用程序可以实现数据共享3) android内置的许多数据都是使用ContentProvider形式,供开发者调用的(如视频,音频,图片,通讯录等)2.相关概念介绍1)ContentProvider简介 当应用继承Cont
2015-11-04 21:24:56 384
原创 希尔排序
希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的: ●插入排序在对几乎已经排好序的数据操作时, 效率高, 即可以达到线性排序的效率 ●但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位 希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接
2015-11-04 21:18:33 691
原创 插入排序
插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 算法步骤: 1)将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。 2)从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入
2015-11-01 20:55:45 321
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人