务虚笔记

Li Xiaowei's blog


  • 首页

  • 分类

  • 归档

  • 关于

  • 搜索
close
折半查找 | 务虚笔记 - wuxubj,个人博客
务虚笔记

Li Xiaowei's blog


  • 首页

  • 分类

  • 归档

  • 标签

  • 留言

  • 爱的纪念

  • 搜索
close

折半查找

发表于 2016-06-28   |   分类于 算法与数据结构   |  

《数据结构(C语言版)》学习笔记:折半查找算法(p5)

折半查找算法C语言实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//折半查找算法
//特别注意switch中的break不能漏掉
int binsearch(int list[], int searchnum, int left, int right)
{

int midnum;
while (left <= right)
{
midnum = (left + right) / 2;
switch (compare(list[midnum], searchnum))
{
case -1:left = midnum + 1;
break;//注意:break不能掉
case 0:return midnum;
case 1:right = midnum - 1;
}
}
return -1;
}

int compare(int a, int b)
{

if (a>b) return 1;
else if (a == b) return 0;
else return -1;
}

测试主函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//测试主函数
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define MAX_SIZE 1000
void select_swap(int *a, int *b);//实现代码见上一篇:选择排序算法
void sort(int list[], int n);//实现代码见上一篇:选择排序算法
int compare(int a, int b);
int binsearch(int list[], int searchnum, int left, int right);
int main()
{

int num;
int list[MAX_SIZE];
printf("Enter the number of numbers to generate:");
scanf_s("%d", &num);
if (num<1 || num>MAX_SIZE)
{
fprintf(stderr, "Improper value of n.\n");
exit(1);
}
for (int i = 0; i < num; i++)
{
list[i] = rand() % 1000;
printf("%d ", list[i]);
}
sort(list, num);
printf("\nsorted array:\n");
for (int i = 0; i < num; i++)
printf("%d ", list[i]);
printf("\ninput searchnum:");
int searchnum;
scanf_s("%d", &searchnum);
int indice = binsearch(list, searchnum, 0, num-1);
indice>-1 ? printf("%d is in the sorted list:list[%d]=%d\n", searchnum,indice, searchnum) : printf("%d is not in the sorted list.\n", searchnum);
system("pause");
return 0;
}
------ 本文结束 ------
wuxubj wechat
扫一扫,用手机访问本站
#算法 #折半查找
递归产生全排列
选择排序算法
  • 分享到:
  • 微博
  • QQ空间
  • 腾讯微博
  • 微信
  • 文章目录
  • 站点概览
wuxubj

wuxubj

记录敲过的代码、走过的人生

14 日志
7 分类
16 标签
RSS
GitHub Weibo
友情链接
建站日志 学习计划
  1. 1. 折半查找算法C语言实现
  2. 2. 测试主函数
© 2016 wuxubj
由 Hexo 强力驱动
主题 - NexT.Pisces
wuxubj

wuxubj

记录敲过的代码、走过的人生

19 日志
10 分类
26 标签
RSS High
GitHub Weibo
友情链接
建站日志 学习计划
© 2016 - 2017 wuxubj
由 Hexo 强力驱动
主题 - NexT.Pisces
鄂ICP备16017973号
扫二维码
扫一扫,用手机访问本站

扫一扫,用手机访问本站

发送邮件