• Binar qidiruv usuli yordamida massivning key kalitli elementini o‘chiring.
  • Muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti malumotlar tuzilmasi va algoritmlar




    Download 464.27 Kb.
    Sana24.11.2022
    Hajmi464.27 Kb.
    #31586
    Bog'liq
    MTA X.B
    Loyihalashtirish Laborotoriya ishi 2

    O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
    MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI


    Malumotlar tuzilmasi va algoritmlar fani bo’yicha

    2-Laboratoriya ishi


    Mavzu: QIDIRUV USULLARINI TADQIQ QILISH

    Bajardi:Xamzaqulov Bobur


    Guruh: SWD006-1  (215-21)
    Tekshirdi: Bo`riyev Yusuf

    QIDIRUV USULLARINI TADQIQ QILISH.
    Kompyuterda ma’lumotlarni qayta ishlashda qidiruv asosiy amallardan biri hisoblanadi. Uning vazifasi berilgan argument bo’yicha massiv ma’lumotlari ichidan mazkur argumentga mos ma’lumotlarni topish yoki bunday ma’lumot yo’qligini aniqlashdan iborat.
    Ixtiyoriy ma’lumotlar majmuasi jadval yoki fayl deb ataladi. Ixtiyoriy ma’lumot (yoki tuzilma elementi) boshqa ma’lumotdan biror bir belgisi orqali farq qiladi. Mazkur belgi kalit deb ataladi. Kalit noyob bo’lishi, ya’ni mazkur kalitga ega ma’lumot jadvalda yagona bo’lishi mumkin. Bunday noyob kalitga boshlang’ich (birinchi) kalit deyiladi. Ikkinchi kalit bir jadvalda takrorlansada u orqali ham qidiruvni amalga oshirish mumkin. Ma’lumotlar kalitini bir joyga yig’ish (boshqa jadvalga) yoki yozuv sifatida ifodalab bitta maydonga kalitlarni yozish mumkin. Agar kalitlar ma’lumotlar jadvalidan ajratib olinib alohida fayl sifatida saqlansa, u holda bunday kalitlar tashqi kalitlar deyiladi. Aks holda, ya’ni yozuvning bir maydoni sifatida jadvalda saqlansa ichki kalit deyiladi.
    Kalitni berilgan argument bilan mosligini aniqlovchi algoritmga berilgan argument bo’yicha qidiruv deb ataladi. Qidiruv algoritmi vazifasi kerakli ma’lumotni jadvaldan topish yoki yo’qligini aniqlashdan iboratdir.

    Transpozitsiya usuli:

    Ushbu usulda topilgan element ro‘yhatda bitta oldingi element bilan o‘rin almashtiriladi. Agarda mazkur elementga ko‘p murojaat qilinsa, bittadan oldinga surilib borib natijada ro‘yhat boshiga kelib qoladi. Ushbu usulning afzalligi shundaki, tuzilmada ko‘p murojaat qilinadigan elementlar ro‘yhat boshiga bitta qadam bilan intiladi.




    1. Binar qidiruv usuli yordamida massivning key kalitli elementini o‘chiring.

    #include


    #include
    #include
    #include
    using namespace std;
    //SARALASH
    void sort(int arr[], int n)
    {
    int min = arr[0], max = arr[0];
    for (int i = 1; i < n; i++)
    {
    if (arr[i] < min)
    min = arr[i];
    if (arr[i] > max)
    max = arr[i];
    }
    int range = max - min + 1;
    vector holes[range];
    for (int i = 0; i < n; i++)
    holes[arr[i]-min].push_back(arr[i]);

    int index = 0;


    for (int i = 0; i < range; i++)
    {
    vector::iterator it;
    for (it = holes[i].begin(); it != holes[i].end(); ++it)
    arr[index++] = *it;
    }
    }
    int binarySearch(int arr[], int l, int r, int x)
    {
    if (r >= l) {
    int mid = l + (r - l) / 2;

    if (arr[mid] == x)


    return mid;
    if (arr[mid] > x)
    return binarySearch(arr, l, mid - 1, x);

    return binarySearch(arr, mid + 1, r, x);


    }
    return -1;
    }
    void arr_key(int arr[],int chay,int n)
    {
    int i=0;
    for ( i;iarr[i]=arr[i];
    for(i;i{
    arr[i]=arr[i+1];
    }
    arr[n-1]='\0';
    }
    int main()
    {
    cout<<"Elementlar sonini kiriting: ";
    int n;
    cin>>n;
    srand(time(0));
    int arr[n];
    for (int i=0;i{
    arr[i]=rand()%20-9;
    }
    sort (arr,n);
    cout<<"Massiv: ";
    for (int i=0;i{
    cout<}
    cout<<"\nKalitni kiriting: ";
    int key;
    cin>>key;
    int chay=binarySearch(arr,0,n-1,key);
    if (chay!=-1){
    arr_key(arr,chay,n);
    cout<<"Yangi massiv: ";
    for (int i=0;i{
    cout<}
    }

    else cout<<"Kiritilgan element topilmadi: ";


    system("pause");
    return 0;}


    Xulosa:
    Men berilgan tuzilmaning shakliga qarab biror kalitga mos elementni qidirishning optimal usulini qo’llashni o’rgandim va qidiruv usullarining samaradorligini taqqosladim.

    Download 464.27 Kb.




    Download 464.27 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti malumotlar tuzilmasi va algoritmlar

    Download 464.27 Kb.