📄 heweierfenchazhao.cpp
字号:
#include <stdio.h>
#include <string.h>
typedef int KeyType;
typedef struct
{
KeyType key;
}RecType;//定义的数据结构结构体
int BinSearch (RecType R[],int n,KeyType k)//二分法查找
{
int low = 0 , high = n - 1 , mid = 0 ;
int count = 0 ;
while (low <= high)
{
mid = (low + high)/2 ;
if (R[mid].key == k)
return mid;
if (R[mid].key > k)
high = mid - 1 ;
else
low = mid + 1 ;
}
return -1;
}
void QuickSort(RecType R[],int s,int t)//快速排序的源代码
{
int i = s ;
int j = t ;
int k;
RecType temp ;
if (s < t){
temp = R[s];
while (i != j ){
while (j > i && R[j].key>temp.key)
j--;
if (i<j){
R[i] = R[j];
i++;
}
while (i<j&&R[i].key<temp.key)
i++;
if (i<j){
R[j] = R[i];
j--;
}
}
R[i] = temp ;
QuickSort(R,s,i-1);
QuickSort(R,i+1,t);
}
}
void main ()//主函数
{
RecType R[10];
KeyType k;
int i,j=1;
int n = 10 ;
int a[10];
for (i = 0;i<n;i++)
{
printf("请输入带排序的序列的元素:");
scanf("%d",&a[i]);
R[i].key = a[i];
}
while(j!=0)
{
printf("\n");
printf("请输入你要查找的元素:");
scanf("%d",&k);
printf("\n");
QuickSort(R,0,n-1);
if ((i = BinSearch(R,n,k))!=-1)
printf("待查元素:%2d 在原序列的位置是:%2d\n",k,i);
else
printf("抱歉!你查找的元素不在此序列中:\n ");
for (k = 0;k<10;k++)
{
printf(" %6d",R[k].key);
}
printf("\n如果继续查找请输入非零值:\n");
scanf("%d",&j);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -