对一组汽车牌照进行排序和查找

版权声明:转载请附上此博客地址,谢谢 https://blog.csdn.net/qq_30796379/article/details/85051492

NO COPYING!  

NO COPYING!

NO COPYING!

//Sinhaeng Hhjian
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define MAX 100
using namespace std;
const int maxn=1005;
char s[maxn][maxn];
void Sort(int n){
    for(int i=1;i<n;i++)
        for(int j=1;j<n-i;j++)
            if(strcmp(s[j], s[j+1])>0){
            	char temp[maxn];
            	strcpy(temp, s[j]);
            	strcpy(s[j], s[j+1]);
            	strcpy(s[j+1], temp);
			}
}

void BS(int n){
     char x[maxn];
     printf("请输入要查找的汽车牌照!\n");
     scanf("%s", x);

     int l=1, r=n, ans;
     while(l<=r){
         int m=l+r>>1;
         if(strcmp(s[m], x)==0){
             printf("查找结果是第%d个车牌!\n", m);
             return;
         }
         if(strcmp(s[m], x)>0)
            r=m-1;
         else l=m+1;
     }
     printf("查找失败!\n");
     return;
}

int main(){
    int n;
    printf("请输入汽车牌照的个数:");
	scanf("%d", &n);
	printf("请输入汽车牌照的信息:\n"); 
    for(int i=1;i<=n;i++) 
		scanf("%s", s[i]);

    Sort(n);
    printf("排序结果为:\n");
    for(int i=1;i<=n;i++) 
		printf("%s\n", s[i]);

    BS(n);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_30796379/article/details/85051492