"Data Structure" Experiment 4 Report (Quick Sort)

#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<cstdio>
#include<algorithm>
#define debug(a) cout<<#a<<"="<<a<<endl;
using namespace std;
const int maxn=1e5+100;
typedef int LL;
LL q[maxn],n;
void quicksort(LL q[],LL l,LL r)
{
	if(l>=r) return;
	LL i=l-1;LL j=r+1;LL x=q[(l+r)/2];
	while(i<j)
	{
		do i++;while(q[i]<x);
		do j--;while(q[j]>x);
		if(i<j) swap(q[i],q[j]);
	}
    quicksort(q,l,j);quicksort(q,j+1,r);
}
LL find(LL num){
    for(LL i=1;i<=n;i++){
        if(q[i]==num){
            return i;
        }
    }
    return n+1;
}
int main(void)
{
    cout<<"要输入的数的个数:"<<endl;
	cin>>n;
	cout<<"依次输入"<<n<<"个数"<<endl;
	for(LL i=1;i<=n;i++) cin>>q[i];
	quicksort(q,1,n);
	cout<<"顺序表如下:"<<endl;
	for(LL i=1;i<=n;i++)
        cout<<q[i]<<' ';
    cout<<endl;
    cout<<"Q---查找;B---退出"<<endl;
    while(1){
        char str[100];cin>>str;
        if(str[0]=='B'){
            break;
        }
        else if(str[0]=='Q'){
            cout<<"输入要查找的数"<<endl;
            int num;cin>>num;
            int pos=find(num);
            if(pos==n+1){
                cout<<"未找到该数"<<endl;
            }
            else{
                cout<<"该数在顺序表的位置为:"<<pos-1<<endl;
            }
        }
        else{
            cout<<"重新输入"<<endl;
        }
    }
	cout<<endl;
return 0;
}

 

Guess you like

Origin blog.csdn.net/zstuyyyyccccbbbb/article/details/112247410