01/10/2018, 09:59
Sửa code tìm kiếm
em đang muốn tìm kiếm từ trên mảng. nhưng ở đây là mảng string chứ không phải mảng int. ai sửa code giùm em
#include <iostream>
#include <string.h>
#include <fstream>
using namespace std;
void swap(char a[], char b[])
{
char t[20];
strcpy(t,a);
strcpy(a,b);
strcpy(b,t);
}
void quick_sort(string s[],int l, int r)
{
if (l>=r) return;
int i=l, j=r;
string x;
x=s[(l+r)/2];
while(i<=j)
{
while (s[i]<x) i++;
while (s[j]>x) j--;
if (i<=j)
{
swap(s[i],s[j]);
i++;j--;
}
}
quick_sort(s,l,j);
quick_sort(s,i,r);
}
void Tim_nhi_phan (string a[] , int n , int x)
{
int l = 0 , r = n - 1 , k;
while (l<=r)
{
k = (l+r)/2;
if(a[k]== x)
return k;
if(x<a[k])
r = k-1;
else
l = k+1;
}
return -1;
}
int main()
{
string a[100];
int m=0; string timkiem;
//string str;
ifstream Docfile("tudien.txt", ios::in);
while(!Docfile.eof())
{
getline(Docfile, a[m]);
m++;
}
Docfile.close();
quick_sort(a, 0, m);
for (int i=0; i < m; i++)
{
cout << a[i] << endl;
}
cout << "nhap tu ban can tim: ";
cin >> timkiem;
}
Bài liên quan
Hàm swap thành swap 2 string, sửa hàm tìm nhị phân thành while(l < r)