它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。之所以叫冒泡排序,是因为它每次排序时,对所排序的数据,排序扫描总是将最大的那个数从地下“冒”上来。冒泡排序效率不高,这是因为它需要约n^2/2次比较,然而对一些小数来说,它的性能还是可以接受的。这个算法的名字由来是因为越大的元素会经由交换慢慢“...
分类:
编程语言 时间:
2015-08-12 19:21:17
阅读次数:
169
C语言对文件操作的部分有可能被考到,虽然比较冷门,但是还是有了解的必要的。
题目是这样的:有两个磁盘文件“c:\A.txt"与“c:\B.txt",各存放一行字母,要求把两个文件的信息合并,并且按字母顺序排列,输出到c:\C.txt中。比如:
在C盘中有:
“c:\A.txt"中有字母如下:
“c:\B.txt"中有字母如下:
程序运行完之后,在C盘会多出一个...
分类:
其他好文 时间:
2015-08-09 18:50:42
阅读次数:
136
排序算法是一种最为基础的算法,可以说无处不在,比如我们的搜索引擎中搜索排序。本文详细介绍了常见的八种排序算法,并附有C++源码实现。最后,针对各种排序算法的性能,进行了比较和分析。
分类:
编程语言 时间:
2015-08-09 15:26:37
阅读次数:
153
排序算法是一种最为基础的算法,可以说无处不在,比如我们的搜索引擎中搜索排序。本文详细介绍了常见的八种排序算法,并附有C++源码实现。最后,针对各种排序算法的性能,进行了比较和分析。
分类:
编程语言 时间:
2015-08-09 01:44:47
阅读次数:
247
终于下决心整理一下主流的排序算法,也算加深理解...
分类:
编程语言 时间:
2015-08-07 19:47:17
阅读次数:
230
这是一篇自己平时纪录的笔记...1.基本的数据结构常识:链表,队列,栈2.基本的算法:排序,动态规划等常用算法3.基本的概念,cocoa,各种自带的view的使用.4.xcode自带的测试:OCUnit5.xcode各种编译性能调试测试工具6.自带的oop编程思想,设计模式,runtime机制等动态...
分类:
移动开发 时间:
2015-08-05 14:39:38
阅读次数:
174
排序分内排序和外排序。内排序:指在排序期间数据对象全部存放在内存的排序。外排序:指在排序期间全部对象个数太多,不能同时存放在内存,必须根据排序过程的要求,不断在内、外存之间移动的排序。内排序的方法有许多种,按所用策略不同,可归纳为五类:插入排序、选择排序、交换排序、归并排序、分配排序和计数排序。插入排序主要包括直接插入排序,折半插入排序和希尔排序两种;选择排序主要包括直接选择排序和堆排序;交换排序...
分类:
编程语言 时间:
2015-08-03 22:53:18
阅读次数:
251
排序各种排序算法的比较
冒泡排序基本定义两两比较相邻记录的的关键字,如果反序则交换,直到没有反序的记录为止。时间复杂度分析最好的情况是,数组是有序的,只需要n - 1次的比较,时间复杂度是O(n)O(n)
最坏的情况是,数组是逆序的,需要比较∑i=2n(i?1)=1+2+3+...+(n?1)=n(n?1)2\sum_{i=2}^{n} (i - 1) = 1+2+3+...+(n-1) = \...
分类:
编程语言 时间:
2015-08-03 22:41:28
阅读次数:
194
题目如下:
Given any permutation of the numbers {0, 1, 2,..., N-1}, it is easy to sort them in increasing order. But what if Swap(0, *) is the ONLY operation that is allowed to use? For example, to...
分类:
其他好文 时间:
2015-08-02 21:43:59
阅读次数:
130
例一:求表长
设一个移动工作指针p和一个计数器j,初始时p=L->next,J=0,若p非空,则计数器加1,并将指针下移一个位置,直到达链表尾,算法描述如下:int LinkListLen(LinkList L)
{
//求带头结点的单链表L的长度
LNode *p
int j=0;
p=L->next;//p指向第一个结点
while(p){j++;p=p->ne...
分类:
其他好文 时间:
2015-08-02 20:09:50
阅读次数:
191