⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 heweierfenchazhao.cpp

📁 自己的小程序
💻 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 + -