归并排序的基本思想: 将两个或两个以上的有序子序列”归并”为一个有序序列:假定待排序表含有n个记录, 则可以看成是n个有序的子表, 每个子表长度为1, 然后两两归并, 得到[n/2]个长度为2或1的有序表,; 再量量归并, ...., 如此重复, 直到合并成为一个长度为n的有序表为止, 这种排序方法称为2-路归并排序.如图为一个2-路归并拍下的一个示例:/**说明:
将有序的记录序列 in...
分类:
编程语言 时间:
2015-01-03 21:10:12
阅读次数:
182
最近在牛客网刷题,有一道题目是实现二分查找算法,由此便在咖啡店写了段代码,实现这个简单的算法。但同时自己还有一个问题(见最后),希望有朋友能帮忙解答。后期如果自己知道答案,我会自己更新在此。一. 算法介绍 优点:比较次数少,查找速度快,平均性能好; 缺点:要求待查表为有序表,且插入删除困难。 ...
分类:
编程语言 时间:
2014-12-27 17:23:49
阅读次数:
125
1.算法描述 归并排序的基本思想是基于合并操作,即合并两个已经有序的序列是容易的,不论这两个序列是顺序存储还是链式存储,合并操作都可以在Ο(m+n)时间内完成(假设两个有序表的长度分别为m和n)。为此,由分治法的一般设计步骤得到归并排序的过程为: 1. 划分:将待排序的序列划分为大小相等(或大...
分类:
编程语言 时间:
2014-12-23 21:05:19
阅读次数:
228
二分查找感觉还是挺简单的,我写的这程序是处理有序表的查找,主要思想是这么回事:已知元素个数,找到位于中间元素的值a[mid],并与要找的value比较,如果大于,那么就从0到mid-1中继续查找。要考虑的问题,如果元素个数为0,数组中没有要查找的元素,还有找到元素怎么返回。#include#incl...
分类:
其他好文 时间:
2014-12-18 11:50:36
阅读次数:
130
/* Date:2014.12.16
折半查找算法,也叫二分查找,用于对拥有唯一元素的查找。
需要先经过按序排序后才能进行。只对有序表适用。
*/
//先快速排序:(此处增序,也可降序)
void QuickSort(int *arr,int left,int right)
{
int key,temp,ltemp,rtemp;
ltemp = left;
r...
分类:
编程语言 时间:
2014-12-17 12:52:34
阅读次数:
116
二分查找:
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。
代码不多也就几行;主要 start = 0; end = nLength -1;while(start
#include
using namespace std;
/* run this program using the console pauser...
分类:
编程语言 时间:
2014-12-14 22:48:24
阅读次数:
222
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以...
分类:
编程语言 时间:
2014-12-10 18:02:41
阅读次数:
190
折半查找是一种比较高效的查找方式,其基本思想是:在某个有序表中,取出中间的记录作为比较对象,如果要查找记录的关键码等于中间记录的关键码,则查找成功;若要查找记录的关键码小于中间记录的关键码,则在中间记录的左半区继续查找;若查找记录的关键码大于中间记录的关键码,则在中间记录的右半区继续查找。不断重复....
分类:
编程语言 时间:
2014-12-01 22:22:41
阅读次数:
158
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1483分析:先将不同的颜色的出现位置从小到大用几条链表串起来,然后统计一下答案对于每次修改,修改一下答案即可,修改之后需要将两个颜色的链表合并就行了,但感觉似乎会TLE?以下摘录与Hzwe...
分类:
其他好文 时间:
2014-11-30 00:24:46
阅读次数:
284
列表 list:[4.0, 'string', True],可改变,有序,L[n]表示第n+1个元素;L[-n]表示倒数第n个,e.g.L[-2]表示倒数第二个
增:L.append('xxx')可以把xxx添加到list末尾;L.insert(n, 'xxx')可以把xxx添加到list中索引为n的位置上;
删:del L[n]可以删除list中索引为n的元素;L.pop()可以删除list...
分类:
编程语言 时间:
2014-11-22 23:09:25
阅读次数:
217