折半查找二分查找又称折半查找优点:比较次数少,查找速度快,平均性能好;缺点:要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,..
分类:
其他好文 时间:
2015-11-07 19:08:37
阅读次数:
296
分类 :(一)插入类排序:直接插入排序,折半插入排序,希尔排序(二)交换类排序:冒泡排序,快速排序(三)选择类排序:简单选择排序,树形选择排序,堆排序(四)归并排序:归并排序(五)分配类排序二、插入类排序:(一)思想:在一个已经排好序的序列中,将未被排进的元素按照原先的规定插入到指定位置。(二)分类...
分类:
编程语言 时间:
2015-11-07 12:15:40
阅读次数:
395
#include<stdio.h>
#include<stdlib.h>
intbinsearch(intx,intarr[],intleft,intright)
{
while(left<=right)
{
intmid=(left+right)/2;
if(arr[mid]==x)
{
returnmid;
}
elseif(arr[mid]<x)
{
left=mid+1;
}
else
{
right=mid-1;
}
}
return-1;
}
intmain()..
分类:
编程语言 时间:
2015-10-31 18:39:55
阅读次数:
214
题目传送门题意:长度为L的金条,将n根金棍尽可能放上去,要求重心在L上,使得价值最大,最多有两条可以长度折半的放上去。分析:首先长度可能为奇数,先*2。然后除了两条特殊的金棍就是01背包,所以dp[now][j][k]表示当前状态,长度为j,使用了k条特殊金棍获得的最大价值,需要对内存和时间优化。/...
分类:
其他好文 时间:
2015-10-30 18:39:23
阅读次数:
141
#include<stdio.h>intbin_search(intarr[],intsize,intkey){intleft=0;intright=size-1;while(left<=right){intmid=(left+right)/2;if(arr[mid]>key)right=mid-1;elseif(arr[mid]<key)left=mid+1;else{returnmid;//如果能找到,则返回mid下标}}return-1;如果找..
分类:
编程语言 时间:
2015-10-28 07:09:21
阅读次数:
262
顺序查找并没有对表中的关键字域的顺序做出任何假设,与顺序查找不同,在折半查找中,表中的记录是按关键字域有序排列的,其比较会出现下面三种结果:
searchumn< list[middle].key,此时,无需考虑位于list[middle]和list[n-1]之间的记录,而继续查找位于list[0]和list[middle-1]间的记录。
searchnum=list[middle].key,此时...
分类:
其他好文 时间:
2015-10-26 13:48:31
阅读次数:
162
#include<stdio.h>
#include<stdlib.h>
voidfind(intarr1[],intkey,intright)
{
intleft=0,mid;
while(left<=right)
{
mid=(left+right)/2;
if(key==arr1[mid])
{
printf("\n找到了,您要找的数是%d,位置为%d\n",key,mid+1);
break;
}
elseif(key>arr1[mid])..
分类:
编程语言 时间:
2015-10-22 06:51:21
阅读次数:
157
本小节知识点:1. 【掌握】基本思路2. 【掌握】实现步骤3. 【了解】练习##1.基本思路- 在有序表中,取中间元素作为比较对象,若给定值与中间元素的要查找的数相等,则查找成功;若给定值小于中间元素的要查找的数,则在中间元素的左半区继续查找;- 若给定值大于中间元素的要查找的数,则在中间元素的右半...
分类:
编程语言 时间:
2015-10-20 06:35:40
阅读次数:
137
排序算法大致有直接插入排序、折半插入排序、Shell排序、归并排序、直接选择排序、堆排序、冒泡排序、快速排序、桶式排序、基数排序等这些种,各个算法都有其优异性,大家不妨自己看看。下面贴上每个算法的简单讲解和实现: 1.直接选择排序(DirectSelectSort):其关键就是对n个数据要进行n-1...
分类:
编程语言 时间:
2015-10-18 23:10:09
阅读次数:
307
排序算法大致有直接插入排序、折半插入排序、Shell排序、归并排序、直接选择排序、堆排序、冒泡排序、快速排序、桶式排序、基数排序等这些种,各个算法都有其优异性,大家不妨自己看看。下面贴上每个算法的简单讲解和实现: 1.直接选择排序(DirectSelectSort):其关键就是对n个数据要进行n-1...
分类:
编程语言 时间:
2015-10-17 21:55:39
阅读次数:
264