一、概念:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子...
分类:
Web程序 时间:
2014-08-04 21:31:58
阅读次数:
300
首先说明一下快速排序是对冒泡排序的改进。为什么这么说呢?想一下冒泡排序,它把序列分成了两部分,前半部分无序,后半部分升序排列,并且后半部分的数都大于前半部的数。
由此可得到快速排序和冒泡排序的一些共同点:
都要经历n趟排序每趟排序要经历O(n)次比较都是后半部分元素比前半部大
而不同之处就在于冒泡排序的交换操作发生相邻的元素之间,即一趟排序可以要经过多次交换操作;快速排序的交换操作发生在...
分类:
其他好文 时间:
2014-08-02 12:51:33
阅读次数:
197
题目感谢JLGG的指导!思路://把数据转换成一条折线,发现有凸有凹//有凹点,去掉并加上两边的最小值//无凹点,直接加上前(n-2)个的和(升序)//数据太大,要64位//判断凹与否,若一边等于,一边大于,那中间这个也算是凹进去的,所以判断时要加上等于//有凹点,去掉并加上两边的最小值//无凹点,...
分类:
其他好文 时间:
2014-08-01 23:00:32
阅读次数:
259
二分查找有很多种写法…对不同的功能也有不同的写法,比如找最左边的相等的数、小于它的最大的数、大于它的最小的数等等……我写的时候总是特别蛋疼。于是来收集一下,以后要用二分查找的时候,新的写法我就拿来放在这里。在升序中找比a[i]大的第一个(比a[i]大的最小的一个)(数据要保证必有比a[i]大的,不然...
分类:
其他好文 时间:
2014-08-01 19:11:22
阅读次数:
185
编写程序实现以下功能:
//随机产生20个正整数存入数组a中,且每个数均在1000-9999之间(包含1000和9999)。对数组进行排序,要求按每个数的后三位的大小进
行升序排列,然后取出满足此条件的前10个数放入数组b中,如果后三位的数值相等,则按原先的数值进行降序排列。最后输出..
分类:
其他好文 时间:
2014-08-01 07:02:42
阅读次数:
194
typedefstruct
{
charname[20];
intage;
floatscore;
}Stu;
#import<Foundation/Foundation.h>
//姓名升序
voidsortByName(Stu*p,intcount)
{
for(inti=0;i<count-1;i++){
for(intj=0;j<count-1-i;j++){
if(strcmp((p+j)->name,(p+j+1)->name)>0){
Stute..
分类:
其他好文 时间:
2014-07-30 17:51:35
阅读次数:
207
TimSort算法是一种起源于归并排序和插入排序的混合排序算法,设计初衷是为了在真实世界中的各种数据中可以有较好的性能。该算法最初是由Tim Peters于2002年在Python语言中提出的。 TimSort 是一个归并排序做了大量优化的版本。对归并排序排在已经反向排好序的输入时表现O(n2)的特点做了特别优化。对已经正向排好序的输入减少回溯。对两种情况混合(一会升序,一会降序)的输入处理比较...
分类:
编程语言 时间:
2014-07-30 14:49:53
阅读次数:
805
phpcms v9自带的相关文章、专题等模块不支持order排序,调用的相关文章、专题默认为升序,这样就造成了一个问题,调出来的相关文章是最早的文章,没有时效性。我们只能通过修改程序文件,只需简单修改一个文件,就能达到我们的需求。
修改相关文章排序的方法:
打开根目录下的phpcms/modules/content/classes/content_tag.class.php,找到
$r...
分类:
Web程序 时间:
2014-07-29 18:08:32
阅读次数:
215
UVA 11235 - Frequent values
题目链接
题意:给定一个升序数列,每次询问一个区间[l, r],求出其中相同数字最大的个数
思路:RMQ,由于是升序,所以数字大小相同的必然连在一块,先预处理出一共有多少段,每段包含多少个数字,和原数组中每个位置对应哪一段,最左边位置和最右边位置,然后每次询问的时候,可以把询问[L, R]的时候可以分成三段:
1、L到r[...
分类:
其他好文 时间:
2014-07-29 14:38:28
阅读次数:
192
今天用python自带的sorted对一个列表进行排序, 在这里总结一下只要是可迭代对象都可以用sorted 。sorted(itrearble, cmp=None, key=None, reverse=False)=号后面是默认值 默认是升序排序的, 如果想让结果降序排列,用reverse=Tru...
分类:
编程语言 时间:
2014-07-26 14:49:40
阅读次数:
284