简单排序算法 java排序算法 排序算法总结 堆排序算
$arr = array(
12,
45,
89,
3,
24,
55,
223,
76,
22,
11,
28,
112,
20,
434,
23,
65,
65,
765,
6,
8,
23,
5,
33,
553,
45,
423,
64,
77,
84,
23
);
/**
* 冒泡排序算法,时间复杂度n2/2次
* 冒泡排 序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。
* 然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最 后。
* 在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第 二个数
* (倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过 程,
* 直至最终完成排序。
*/
function maopao_sort($arr)
{
$count = count($arr);
$tmp;
$m = 0; // 用于计算执行多少次
for ($i = 0; $i for ($j = 0; $j if ($arr[$j] > $arr[$j + 1]) {
$tmp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j + 1] = $tmp;
}
$m ++;
}
}
print_r($arr);
echo $m;
}
/**
* 选择排序算法,时间复杂度n2/2次
* 1.从待排序序列中,找到关键字最小的元素;
* 2.如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;
* 3.从余下的 N - 1 个元素中,找出关键字最小的元素,重复( 1 )、( 2 )步,直到排序结束
*/
function select_sort($arr)
{
$count = count($arr);
$tmp;
$m = 0; // 用于计算执行多少次
for ($i = 0; $i $p = $i;
for ($j = $i + 1; $j if ($arr[$p] > $arr[$j]) {
$p = $j;
}
$m ++;
}
if ($p != $i) {
$tmp = $arr[$p];
$arr[$p] = $arr[$i];
$arr[$i] = $tmp;
}
}
print_r($arr);
echo $m;
}
/**
* 插入排序算法,时间复杂度n2/2次
* 插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕
*/
function insert_sort($arr)
{
$count = count($arr);
$tmp;
$m = 0; // 用于计算执行多少次
for ($i = 1; $i $tmp = $arr[$i];
for ($j = $i - 1; $j >= 0; $j --) {
if ($tmp $arr[$j + 1] = $arr[$j];
$arr[$j] = $tmp;
} else {
break;
}
$m ++;
}
}
print_r($arr);
echo $m;
}
/**
* 快速排序算法,时间复杂度n2/2次
* 该方法的基本思想是:
* 1.先从数列中取出一个数作为基准数。
* 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
* 3.再对左右区间重复第二步,直到各区间只有一个数。
*/
function quick_sort($arr)
{
$count = count($arr);
if ($count return $arr;
}
$tmp = $arr[0];
$left_array = array();
$right_array = array();
for ($i = 1; $i if ($arr[$i] $left_array[] = $arr[$i];
} else {
$right_array[] = $arr[$i];
}
$m ++;
}
$left_array = quick_sort($left_array);
$right_array = quick_sort($right_array);
return array_merge($left_array, array(
$tmp
), $right_array);
}
// print_r(quick_sort($arr));
// // print_r(quickSort($arr));
function quickpaixu($arr)
{
$count = count($arr);
if ($count return $arr;
}
$key = $arr[0]; // 取一个值,稍后用来比较;
$left_arr = array();
$right_arr = array();
for ($i = 1; $i if ($arr[$i] $left_arr[] = $arr[$i];
} else {
$right_arr[] = $arr[$i];
}
}
$left_arr = quickpaixu($left_arr); // 进行递归;
$right_arr = quickpaixu($right_arr);
return array_merge($left_arr, array(
$key
), $right_arr); // 将左中右的值合并成一个数组;
} // 以下是测试
// print_r(quickpaixu($arr));
?>
以上就介绍了简单排序算法,包括了排序算法,简单方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Nombor siri cakera keras ialah pengecam penting cakera keras dan biasanya digunakan untuk mengenal pasti cakera keras secara unik dan mengenal pasti perkakasan. Dalam sesetengah kes, kami mungkin perlu menanyakan nombor siri cakera keras, seperti semasa memasang sistem pengendalian, mencari pemacu peranti yang betul atau melakukan pembaikan cakera keras. Artikel ini akan memperkenalkan beberapa kaedah mudah untuk membantu anda menyemak nombor siri cakera keras. Kaedah 1: Gunakan Windows Command Prompt untuk membuka command prompt. Dalam sistem Windows, tekan kekunci Win+R, masukkan "cmd" dan tekan kekunci Enter untuk membuka arahan

1. Latar belakang masalah 1. Pengenalan kepada eksperimen pasaran dua belah Pasaran dua belah, iaitu platform, merangkumi dua peserta, pengeluar dan pengguna, dan kedua-dua pihak mempromosikan satu sama lain. Sebagai contoh, Kuaishou mempunyai pengeluar video dan pengguna video, dan kedua-dua identiti mungkin bertindih pada tahap tertentu. Eksperimen dua hala ialah kaedah eksperimen yang menggabungkan kumpulan di pihak pengeluar dan pengguna. Percubaan dua hala mempunyai kelebihan berikut: (1) Kesan strategi baharu pada dua aspek boleh dikesan serentak, seperti perubahan dalam DAU produk dan bilangan orang yang memuat naik karya. Platform dua hala selalunya mempunyai kesan rangkaian rentas sisi Semakin ramai pembaca, semakin aktif pengarang, dan semakin aktif pengarang, semakin ramai pembaca yang akan mengikuti. (2) Limpahan kesan dan pemindahan boleh dikesan. (3) Bantu kami lebih memahami mekanisme tindakan Percubaan AB itu sendiri tidak boleh memberitahu kami hubungan antara sebab dan akibat, sahaja

Bagaimana untuk menulis penjana laporan prestasi pelajar yang mudah menggunakan Java? Penjana Laporan Prestasi Pelajar ialah alat yang membantu guru atau pendidik menjana laporan prestasi pelajar dengan cepat. Artikel ini akan memperkenalkan cara menggunakan Java untuk menulis penjana laporan prestasi pelajar yang mudah. Pertama, kita perlu menentukan objek pelajar dan objek gred pelajar. Objek pelajar mengandungi maklumat asas seperti nama pelajar dan nombor pelajar, manakala objek skor pelajar mengandungi maklumat seperti skor mata pelajaran pelajar dan gred purata. Berikut ialah definisi objek pelajar mudah: awam

Permulaan Pantas: Melaksanakan Sistem Pengurusan Perpustakaan Mudah Menggunakan Fungsi Bahasa Go Pengenalan: Dengan pembangunan berterusan bidang sains komputer, keperluan aplikasi perisian menjadi semakin pelbagai. Sebagai alat pengurusan biasa, sistem pengurusan perpustakaan juga telah menjadi salah satu sistem yang diperlukan untuk banyak perpustakaan, sekolah dan perusahaan. Dalam artikel ini, kami akan menggunakan fungsi bahasa Go untuk melaksanakan sistem pengurusan perpustakaan yang mudah. Melalui contoh ini, pembaca boleh mempelajari penggunaan asas fungsi dalam bahasa Go dan cara membina program praktikal. 1. Idea reka bentuk: Mari dahulu

Bagaimana untuk menulis sistem tempahan dalam talian yang mudah melalui PHP Dengan populariti Internet dan mengejar kemudahan pengguna, sistem tempahan dalam talian menjadi semakin popular. Sama ada restoran, hospital, salun kecantikan atau industri perkhidmatan lain, sistem tempahan dalam talian yang mudah boleh meningkatkan kecekapan dan memberikan pengguna pengalaman perkhidmatan yang lebih baik. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis sistem tempahan dalam talian yang mudah dan memberikan contoh kod khusus. Cipta pangkalan data dan jadual Pertama, kita perlu mencipta pangkalan data untuk menyimpan maklumat tempahan. Dalam MyS

Bagaimana untuk menulis sistem cadangan muzik mudah dalam C++? Pengenalan: Sistem pengesyoran muzik ialah hotspot penyelidikan dalam teknologi maklumat moden Ia boleh mengesyorkan lagu kepada pengguna berdasarkan pilihan muzik dan tabiat tingkah laku mereka. Artikel ini akan memperkenalkan cara menggunakan C++ untuk menulis sistem cadangan muzik yang ringkas. 1. Kumpul data pengguna Pertama, kita perlu mengumpul data keutamaan muzik pengguna. Keutamaan pengguna untuk pelbagai jenis muzik boleh diperolehi melalui tinjauan dalam talian, soal selidik, dsb. Simpan data dalam fail teks atau pangkalan data

Pengenalan kepada cara menggunakan PHP untuk membangunkan fungsi pengurusan fail mudah: Fungsi pengurusan fail merupakan bahagian penting dalam banyak aplikasi web. Ia membolehkan pengguna memuat naik, memuat turun, memadam dan memaparkan fail, memberikan pengguna cara yang mudah untuk mengurus fail. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan fungsi pengurusan fail mudah dan menyediakan contoh kod khusus. 1. Buat projek Pertama, kita perlu mencipta projek PHP asas. Cipta fail berikut dalam direktori projek: index.php: halaman utama, digunakan untuk memaparkan jadual muat naik

Bagaimana untuk menulis permainan penyapu ranjau mudah dalam C++? Penyapu ranjau ialah permainan teka-teki klasik yang memerlukan pemain mendedahkan semua blok mengikut susun atur medan periuk api yang diketahui tanpa memijak lombong. Dalam artikel ini, kami akan memperkenalkan cara menulis permainan penyapu ranjau mudah menggunakan C++. Pertama, kita perlu menentukan tatasusunan dua dimensi untuk mewakili peta permainan Penyapu Ranjau. Setiap elemen dalam tatasusunan boleh menjadi struktur yang digunakan untuk menyimpan status blok, seperti sama ada ia didedahkan, sama ada terdapat lombong, dsb. Di samping itu, kita juga perlu menentukan
