摘要: // 将数组array通过除数取余法分散到hash数组中void BuildHash(int *hash, int *array, int n){ bool flag[HASH_LENGTH] = {false}; int index; for(int i = 0; i < n; i++) { index = array[i] % HASH_LENGTH; if(!flag[index]... 阅读全文
posted @ 2013-12-03 16:49 a ray of sunshine 阅读(146) 评论(0) 推荐(0) 编辑
摘要: (1) 如果代码中没有显示初始化则,数组中的值是随机的值,例如: int a[5];(2) 数组进行了初始化,但是提供的值的个数小于数组的元素个数,初始化值的个数可少于数组元素个数.当初始化值的个数少于数组元素个数时,前面的按序初始化相应值, 后面的初始化为0(全局或静态数组)或为不确定值(局部数组).事实上编译器常常将那些后面的未初始化的值初始化为0,例如: int a[5] = {1... 阅读全文
posted @ 2013-12-03 16:10 a ray of sunshine 阅读(285) 评论(0) 推荐(0) 编辑
摘要: // array为待查找数组// n为数组array的元素个数// key为查找的元素int BinarySearch(int *array, int n, int key){ int head = 0; int tail = n - 1; int middle; while(head array[middle]) { head = middle + 1; continue; ... 阅读全文
posted @ 2013-12-03 14:10 a ray of sunshine 阅读(178) 评论(0) 推荐(0) 编辑
摘要: // 顺序查找// array为待查找数组// n为数组array的元素个数// key为查找的元素int SequenceSearch(int *array, int n, int key){ for(int i = 0; i < n; i++) { if(key == array[i]) { return i; } } return -1;}顺序查找的时间复杂度为O(N) 阅读全文
posted @ 2013-12-03 13:49 a ray of sunshine 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 1. 排序算法的分类内部排序:所有排序操作均在内存中完成,不需要借助外部存储器的排序。外部排序:参与排序的数据量十分大,无法再内存中完成,必须借助外部存储器的排序。外部排序的最常用的算法:多路归并排序,其算法思想如下:把要排序的文件中的一组数据读入内存的排序区,然后用内部排序对这一组数据排序,接着输出到外部存储器。重复第一步,每次读取一组数据,直到原文件的所有记录都被处理完毕。将分组排好序的记录两组两组地合并排序。在内存容量允许的情况下,每组包含的记录越大越好,这样可以减少合并的次数。2. 常用内部排序算法的分类交换排序法:冒泡排序 | 鸡尾酒排序 | 快速排序 选择排序法:选择排序 | 堆排 阅读全文
posted @ 2013-12-03 10:35 a ray of sunshine 阅读(182) 评论(0) 推荐(0) 编辑