摘要: 希尔排序(Shell's Sort)又称缩小增量排序,类属于插入排序。考虑到直接插入排序得一下特点: (1)在待排序数基本有序情况下排序效率大大提高; (2)在n很小时,其排序效率也很高。 基于以上考虑,对直接插入排序进行改进,并得出希尔排序。其基本思想为:先将整个待排序记录序列分割成若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序时”,再对全体记录进行一次插入排序。 这里的子序列是通过一个增量得到的,每一次赋予不同的增量,则得到不同的子序列组(分别对子序列进行直接插入排序就称作一次希尔插入排序,注意,实际代码中并不是依次排好一个自序列之后再排下一个这样效... 阅读全文
posted @ 2013-04-07 11:11 busyfruit 阅读(576) 评论(0) 推荐(0) 编辑
摘要: 做实验需要大量数据,便用C内置的rand()伪随机数生成函数生成了一定的伪随机数。现在的问题是对于超大范围的随机数生成还是一个问题。留待以后解决。代码如下:#include <iostream>#include <time.h>#include <math.h>#include <cstdlib>#include <fstream>using namespace std;int main(){ srand(time(NULL)); int n,n1,i=0; cout << "输入待排序数组的个数:"; 阅读全文
posted @ 2013-04-07 10:43 busyfruit 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 参考维基百科:http://zh.wikipedia.org/wiki/64%E4%BD%8D%E5%85%8364位 http://zh.wikipedia.org/wiki/32%E4%BD%8D%E5%85%83%E6%87%89%E7%94%A8%E7%A8%8B%E5%BC%8F32位应用程序 阅读全文
posted @ 2013-04-07 09:41 busyfruit 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 一、 无符号数和有符号数1.无符号数计算机中的数均存放在寄存器中,通常称寄存器的位数为机器字长。所谓的无符号数即没有符号的数,在寄存器中的每一位均可用来存放数值。而当存放有符号位时,则留出位置存放“符号”。因此,在机器字长相同时,无符号数与有符号数所对应的数值范围是不同的。以机器字长16位为例子,无符号数的范围为0~(216-1=65535),而有符号数的表示范围为(-32768=2­­­15)~(+32767=215-1)(此数值对应原码表示)。机器中的有符号数是用补码表示的。2.有符号数 对于有符号数而言,符号的正负机器是无法识别的,而在机器中是用0,1分别表 阅读全文
posted @ 2013-04-07 09:13 busyfruit 阅读(2755) 评论(0) 推荐(0) 编辑