Rumah pembangunan bahagian belakang tutorial php Pengisihan tatasusunan dan algoritma carian dalam PHP

Pengisihan tatasusunan dan algoritma carian dalam PHP

Jun 23, 2023 am 09:45 AM
algoritma php pengisihan tatasusunan php carian tatasusunan php

PHP ialah bahasa pengaturcaraan yang sangat popular yang menyokong pelbagai jenis data dan algoritma, di mana pengisihan tatasusunan dan algoritma carian adalah bahagian asas dan penting. Artikel ini akan memperkenalkan algoritma pengisihan tatasusunan dan carian yang biasa digunakan dalam PHP, serta senario aplikasi dan analisis kecekapan mereka.

1. Pengisihan tatasusunan

PHP menyediakan pelbagai kaedah pengisihan tatasusunan, termasuk isihan gelembung, isihan sisipan, isihan pemilihan, isihan pantas, isihan gabungan, dsb. Berikut ialah pengenalan dan contoh kod untuk beberapa algoritma yang biasa digunakan:

  1. Isih Buih (Isih Buih)

Isih Buih ialah kaedah yang mudah tetapi tidak cekap Idea asas untuk Algoritma pengisihan adalah bermula dari elemen pertama tatasusunan dan membandingkan saiz elemen bersebelahan dalam urutan Jika elemen kiri lebih besar daripada elemen kanan, kedudukannya ditukar. Selepas pusingan perbandingan ini, elemen terbesar dialihkan ke penghujung tatasusunan. Kemudian mulakan dari elemen pertama dan ulangi operasi di atas, kerumitan masa ialah O(n^2).

Kod contoh:

function bubble_sort($arr) {
    $len = count($arr);
    for ($i = 0; $i < $len - 1; $i++) {
        for ($j = 0; $j < $len - $i - 1; $j++) {
            if ($arr[$j] > $arr[$j + 1]) {
                $temp = $arr[$j];
                $arr[$j] = $arr[$j + 1];
                $arr[$j + 1] = $temp;
            }
        }
    }
    return $arr;
}
Salin selepas log masuk
  1. Isih Sisipan

Isih sisipan ialah algoritma pengisihan yang agak mudah Idea asasnya ialah A data yang akan diisih ialah dimasukkan ke dalam urutan yang telah disusun untuk mencapai tujuan pengisihan. Dengan mengandaikan bahawa elemen sebelumnya telah diisih, mulakan dari elemen kedua tatasusunan dan berharap untuk mencari kedudukan yang sesuai untuk operasi sisipan. Sama seperti isihan gelembung, kerumitan masanya juga O(n^2).

Kod contoh:

function insertion_sort($arr) {
    $len = count($arr);
    for ($i = 1; $i < $len; $i++) {
        $temp = $arr[$i];
        for ($j = $i - 1; $j >= 0 && $arr[$j] > $temp; $j--) {
            $arr[$j + 1] = $arr[$j];
        }
        $arr[$j + 1] = $temp;
    }
    return $arr;
}
Salin selepas log masuk
  1. Isih Pantas (Isih Pantas)

Isih Pantas ialah algoritma pengisihan cekap yang biasa digunakan. Idea asasnya ialah memilih Mana-mana elemen dalam tatasusunan digunakan sebagai nilai asas, dan kemudian elemen yang tinggal dibahagikan kepada dua urutan: nombor di sebelah kiri semuanya lebih kecil daripada nilai asas, dan nombor di sebelah kanan semuanya lebih besar daripada nilai asas. Kemudian ulangi langkah di atas untuk urutan kiri dan kanan sehingga panjang urutan adalah 1 atau 0. Kerumitan masa isihan pantas ialah O(n log2 n), dan ia adalah jenis tidak stabil.

Kod contoh:

function quick_sort($arr) {
    $len = count($arr);
    if ($len <= 1) {
        return $arr;
    }
    $pivot_key = $arr[0];
    $left_arr = array();
    $right_arr = array();
    for ($i = 1; $i < $len; $i++) {
        if ($arr[$i] <= $pivot_key) {
            $left_arr[] = $arr[$i];
        } else {
            $right_arr[] = $arr[$i];
        }
    }
    $left_arr = quick_sort($left_arr);
    $right_arr = quick_sort($right_arr);
    return array_merge($left_arr, array($pivot_key), $right_arr);
}
Salin selepas log masuk

2. Carian tatasusunan

Algoritma carian tatasusunan dalam PHP terutamanya termasuk carian linear, carian binari dan carian cincang. Berikut ialah pengenalan dan contoh kod untuk beberapa algoritma yang biasa digunakan:

  1. Carian Linear

Carian linear ialah algoritma carian mudah Idea asasnya adalah untuk bermula dari elemen pertama tatasusunan dan bandingkan nilai dan kata kunci elemen satu demi satu untuk melihat sama ada ia adalah sama Jika ia wujud, kembalikan subskrip elemen, jika tidak -1 akan dikembalikan. Kerumitan masa carian linear ialah O(n).

Kod contoh:

function linear_search($arr, $key) {
    $len = count($arr);
    for ($i = 0; $i < $len; $i++) {
        if ($arr[$i] == $key) {
            return $i;
        }
    }
    return -1;
}
Salin selepas log masuk
  1. Carian Perduaan

Carian binari juga dipanggil carian separuh Idea asasnya ialah membahagikan tatasusunan tertib kepada Kedua-duanya bahagian membandingkan saiz elemen tengah dan kata kunci setiap kali Jika ia sama, subskrip elemen dikembalikan. Jika tidak, julat carian dikurangkan separuh mengikut perhubungan saiz sehingga elemen sasaran ditemui. Kerumitan masa carian binari ialah O(log2 n).

Kod contoh:

function binary_search($arr, $key) {
    $low = 0;
    $high = count($arr) - 1;
    while ($low <= $high) {
        $mid = floor(($low + $high) / 2);
        if ($arr[$mid] == $key) {
            return $mid;
        } elseif ($arr[$mid] > $key) {
            $high = $mid - 1;
        } else {
            $low = $mid + 1;
        }
    }
    return -1;
}
Salin selepas log masuk
  1. Carian Cincang

Carian cincang ialah algoritma carian cekap yang menggunakan jadual cincang. Idea asas adalah untuk memetakan kunci setiap elemen ke dalam jadual cincang, mengira lokasinya melalui fungsi cincang, dan kemudian cari elemen yang diperlukan di lokasi tersebut. Kerumitan masa carian cincang ialah O(1), tetapi jadual cincang perlu dibina dan diselenggara.

Di atas ialah pengenalan dan contoh kod untuk menyusun tatasusunan dan algoritma carian yang biasa digunakan dalam PHP Memilih algoritma yang berbeza mengikut senario aplikasi dan saiz data sebenar boleh meningkatkan kecekapan kod.

Atas ialah kandungan terperinci Pengisihan tatasusunan dan algoritma carian dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah algoritma biasa dalam pengaturcaraan PHP? Apakah algoritma biasa dalam pengaturcaraan PHP? Jun 12, 2023 am 08:30 AM

Dalam pengaturcaraan PHP, algoritma adalah bahagian penting. Menguasai algoritma biasa bukan sahaja boleh meningkatkan kecekapan kod, tetapi juga membantu dengan reka bentuk program seterusnya. Berikut ialah algoritma biasa dalam pengaturcaraan PHP: Algoritma pengisihan Algoritma pengisihan merujuk kepada penyusunan set data ke dalam urutan tersusun mengikut peraturan tertentu. Dalam pengaturcaraan PHP, algoritma pengisihan yang biasa digunakan termasuk jenis gelembung, isihan sisipan, isihan pemilihan, isihan cepat, dsb. Antaranya, isihan pantas ialah algoritma pengisihan dengan kerumitan masa yang paling rendah dan sesuai untuk memproses data berskala besar. algoritma carian algoritma carian

Pengisihan tatasusunan dan algoritma carian dalam PHP Pengisihan tatasusunan dan algoritma carian dalam PHP Jun 23, 2023 am 09:45 AM

PHP ialah bahasa pengaturcaraan yang sangat popular yang menyokong pelbagai jenis data dan algoritma, di mana pengisihan tatasusunan dan algoritma carian adalah bahagian asas dan penting. Artikel ini akan memperkenalkan algoritma pengisihan tatasusunan dan carian yang biasa digunakan dalam PHP, serta senario aplikasi dan analisis kecekapan mereka. 1. Isih tatasusunan PHP menyediakan pelbagai kaedah pengisihan tatasusunan, termasuk isihan gelembung, isihan sisipan, isihan pemilihan, isihan pantas, isihan gabungan, dsb. Berikut ialah pengenalan dan kod sampel untuk beberapa algoritma yang biasa digunakan: Bubble Sort (BubbleSort)

Cara mengisih dan menapis data menggunakan tatasusunan PHP Cara mengisih dan menapis data menggunakan tatasusunan PHP Jul 15, 2023 pm 12:57 PM

Cara menggunakan tatasusunan PHP untuk menyusun dan menapis data Pengenalan: Semasa membangunkan aplikasi PHP, anda selalunya perlu mengisih dan menapis tatasusunan. Untuk pemprosesan data yang banyak, pengisihan dan penapisan adalah operasi yang sangat penting. PHP menyediakan satu siri fungsi dan kaedah yang boleh mengisih dan menapis tatasusunan dengan mudah. Artikel ini akan memperkenalkan cara menggunakan tatasusunan PHP untuk mengisih dan menapis data, dan memberikan contoh kod yang sepadan. 1. Pengisihan data PHP menyediakan pelbagai kaedah pengisihan tatasusunan Kaedah yang biasa digunakan termasuk sort() dan rsor.

Bagaimana untuk mewakili pengetahuan dan menjana algoritma secara automatik dalam PHP? Bagaimana untuk mewakili pengetahuan dan menjana algoritma secara automatik dalam PHP? May 22, 2023 pm 08:10 PM

Dengan populariti Internet dan pengembangan aplikasi yang berterusan, pembangunan bahasa pengaturcaraan menjadi semakin penting. Sebagai bahasa pengaturcaraan yang sangat popular, PHP juga sentiasa berkembang. Dalam proses pengaturcaraan dengan PHP, pembangun PHP mungkin menghadapi keperluan untuk mewakili beberapa pengetahuan dan menjana algoritma secara automatik. Jadi, bagaimana untuk mewakili pengetahuan dan menjana algoritma secara automatik dalam PHP? Artikel ini akan membincangkan perkara ini di bawah. 1. Perwakilan pengetahuan Perwakilan pengetahuan merupakan isu yang sangat penting dalam bidang kecerdasan buatan. Tahu

Algoritma dan struktur data dalam PHP Algoritma dan struktur data dalam PHP May 25, 2023 am 08:51 AM

PHP ialah bahasa pembangunan yang digunakan secara meluas yang biasa digunakan untuk pembangunan aplikasi web. Walau bagaimanapun, aplikasi Web selalunya perlu memproses sejumlah besar data, termasuk pemprosesan data, penyimpanan dan pertanyaan, dsb. Oleh itu, menggunakan algoritma dan struktur data dalam PHP adalah teknologi yang sangat kritikal. Algoritma ialah kaedah umum yang digunakan dalam pengaturcaraan komputer untuk menyelesaikan masalah. Dalam pengaturcaraan, kami menyelesaikan masalah dengan mereka bentuk dan melaksanakan algoritma untuk meningkatkan kecekapan, kebolehselenggaraan dan kebolehskalaan program kami. Algoritma yang biasa digunakan termasuk menyusun, mencari, membahagi dan menakluk, tamak, dsb.

Analisis algoritma PHP: Bagaimana untuk menggunakan algoritma pengaturcaraan dinamik untuk menyelesaikan masalah ransel 0-1? Analisis algoritma PHP: Bagaimana untuk menggunakan algoritma pengaturcaraan dinamik untuk menyelesaikan masalah ransel 0-1? Sep 19, 2023 pm 12:33 PM

Analisis algoritma PHP: Bagaimana untuk menggunakan algoritma pengaturcaraan dinamik untuk menyelesaikan masalah ransel 0-1? Pengenalan: Pengaturcaraan dinamik ialah idea algoritma yang biasa digunakan untuk menyelesaikan masalah pengoptimuman. Dalam pembangunan program, masalah ransel 0-1 ialah senario aplikasi pengaturcaraan dinamik klasik. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis algoritma pengaturcaraan dinamik untuk menyelesaikan masalah ransel 0-1 dan memberikan contoh kod khusus. Apakah masalah beg ransel 0-1? Masalah ransel 0-1 ialah masalah pengoptimuman gabungan klasik. Masalahnya ditetapkan seperti berikut: Terdapat beg galas dengan kapasiti C. Terdapat n objek

Analisis algoritma PHP: Bagaimana untuk menggunakan algoritma carian binari untuk mencari elemen dalam tatasusunan tertib dengan cepat? Analisis algoritma PHP: Bagaimana untuk menggunakan algoritma carian binari untuk mencari elemen dalam tatasusunan tertib dengan cepat? Sep 19, 2023 pm 01:14 PM

Analisis algoritma PHP: Bagaimana untuk menggunakan algoritma carian binari untuk mencari elemen dalam tatasusunan tertib dengan cepat? Gambaran Keseluruhan: Algoritma carian binari ialah algoritma carian yang cekap yang sesuai untuk mencari elemen tertentu dalam tatasusunan tertib. Artikel ini akan memperkenalkan prinsip algoritma carian binari secara terperinci dan memberikan contoh kod PHP. Prinsip: Algoritma carian binari dengan cepat mencari elemen sasaran dengan berulang kali mengurangkan julat carian sebanyak separuh. Prosesnya adalah seperti berikut: pertama, sempitkan julat carian ke permulaan dan penghujung tatasusunan kemudian, hitung indeks elemen tengah dan bandingkan dengan elemen sasaran;

Pemahaman mendalam tentang algoritma teras PHP dan Vue dalam fungsi pemetaan otak Pemahaman mendalam tentang algoritma teras PHP dan Vue dalam fungsi pemetaan otak Aug 15, 2023 pm 01:00 PM

Pemahaman mendalam tentang algoritma teras PHP dan Vue dalam fungsi pemetaan otak Pengenalan: Dalam era Internet moden, kami sering menggunakan pelbagai aplikasi untuk membantu kami mengatur dan mengurus maklumat. Pemetaan otak ialah cara biasa dan praktikal untuk menyusun maklumat, yang boleh memaparkan proses pemikiran yang kompleks secara grafik. Dalam artikel ini, kami akan menumpukan pada algoritma teras PHP dan Vue dalam fungsi pemetaan otak dan memberikan contoh kod. 1. Ciri-ciri peta minda ialah sejenis peta otak yang mengambil tema pusat sebagai terasnya dan memaparkan maklumat berkaitan tema tersebut melalui struktur pokok.

See all articles