1、去掉重复的数组元素。2、获取一个数组中的重复项。3、求一个字符串的字节长度,一个英文字符占用一个字节,一个中文字符占用两个字节。4、判断一个字符串中出现次数最多的字符,统计这个次数。5、数组排序。6、快排。7、删除/添加数组项。8、数组随机顺序输出。9、数组求和、最大值。10、判断是否为数组。1...
分类:
Web程序 时间:
2014-06-29 13:41:49
阅读次数:
363
持续添加中。。。1 快排 1 void QuickSort(int data[],int
left,int right) 2 { 3 4 if(left=temp)14 j--;15 16 data[i]=data[j];17 18 ...
分类:
其他好文 时间:
2014-06-16 08:25:32
阅读次数:
221
一个数组,数组元素含有3种颜色,红,白,蓝。要求将数组排序,将相同颜色排在一起,整体按照红白蓝的顺序。
这个题在日常生活中很常见。比如要将东西归类,当然这个题简化成了相同颜色就认为完全相同。
基于这个特点,可以先统计各个颜色出现的次数,然后在按照题目要求的红白蓝的顺序,依次放n个红,m个白,k个蓝,就Okay了,代码详见代码一。这个思路也就是题目下面提示的方法,这个方法需遍历2次数组,本题要求遍历一次就搞定的方法,想想这个还是有点难度的。
这个题目其实我们很容易就能联想到快排的划分上来,但是仔细一想,如果按...
分类:
其他好文 时间:
2014-06-10 15:56:14
阅读次数:
223
众所周知,Std::sort()是一个非常快速的排序算法,它基于快排,但又有所修改。一般来说用它就挺快的了,代码一行,时间复杂度O(nlogn)(难道不是大叫一声“老子要排序!!”就排好了么。。。)。我们也知道,不基于比较的排序可以达到O(n),比如说基数排序。什么,它是O(n
* log(10.....
分类:
其他好文 时间:
2014-06-10 00:04:07
阅读次数:
326
很多时候排序是为了对数据进行归类,比如对城市进行排序,对员工的职业进行排序。这种排序的特点就是重复的值特别多。
如果使用普通的快排对这些数据进行排序,会造成N^2复杂度,但是归并排序和三路快排就没有这样的问题。
三路快排
三路快排的基本思想就是,在对数据进行分区的时候分成左中右三个部分,中间都是相同的值,左侧小于中间,右侧大于中间。
...
分类:
其他好文 时间:
2014-06-08 15:29:45
阅读次数:
197
排序的应用
排序算法有着广泛的应用。
典型的应用有
对名称进行排序
排序MP3音乐文件
显示Google的搜索结果
按标题顺序列出RSS订阅
排序之后下列问题就变得非常简单了
找出中位数
数据库中的二分查找
找出统计数据中的异常值
在邮箱中找出重复的邮件
不是...
分类:
其他好文 时间:
2014-06-08 14:45:20
阅读次数:
197
quick sort of array and linked list
分类:
其他好文 时间:
2014-06-03 08:16:22
阅读次数:
359
课程介绍
这门课程核心内容是算法和数据结构。
具体的算法和数据结构如下:
数据类型:堆栈、队列、背包、并查集、优先队列。
排序:快排、并排、堆排、基数排序
查找:BST、红黑BST、哈希表
图:BFS、DFS、Prim、Kruskai、Dijkstra
字符串:KMP、正则、TST、哈夫曼、LZW
高级:B树、后缀数组、最...
分类:
其他好文 时间:
2014-06-01 10:52:26
阅读次数:
285
快排,从小到大排序 1 void quicksort(int a[],int low,int
high) 2 { 3 int i=low; 4 int j=high; 5 int temp=a[i]; 6
if(i=temp&&i<j) j--; ...
分类:
其他好文 时间:
2014-05-30 08:03:25
阅读次数:
268
思路:1、排序,取前k个元素;O(NlogN);2、分治,O(n),利用快排的思想;3、用set 维护最小的k个数,O(NlogK),可处理海量数据。...
分类:
其他好文 时间:
2014-05-26 03:38:58
阅读次数:
222