📄 折半查找.cpp
字号:
#include <stdio.h>
#include <malloc.h>
#include <math.h>
#include <iostream.h>
int bub[8];
typedef struct LNode {
int data; // 数据域
int length;
struct LNode *next; // 指针域
} LNode, *LinkList;
void CreateList_L(LinkList &L, int n) {
// 输入 n 个数据元素,建立带头结点的单链表
struct LNode *p;
L =(LinkList) malloc(sizeof(LNode));
L->next = NULL; //建立带头结点的单链表
for (int i = 0; i < n; i++) {
p = (LinkList) malloc(sizeof(LNode));
printf("请输入数据%d\n",i);
scanf("%d",&p->data); // 输入元素值
p->next = L->next;
L->next = p; // 插入
bub[i] = p->data;
}//for
} // CreateList_L
void Search_Bin ( LinkList &L, int kval ) {
int low = 1;
int high = 7; // 置区间初值
while (low <= high) {
int mid = (low + high) / 2;
if (kval == bub[mid]){
printf("\n找到待查元素\n");
printf("该元素为:%d\n",kval); break; // 找到待查元素
}
else if ( kval < bub[mid] )
high = mid - 1; // 继续在前半区间进行查找
else low = mid + 1; // 继续在后半区间进行查找
}
// 顺序表中不存在待查元素
} // Search_Bin
void main(){
LinkList L;
CreateList_L(L,8);
Search_Bin(L,21);
Search_Bin(L,28);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -