糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 简单排序算法 java排序算法 排序算法总结 堆排序算

简单排序算法 java排序算法 排序算法总结 堆排序算

时间:2024-06-12 19:29:25

相关推荐

简单排序算法 java排序算法 排序算法总结 堆排序算

后端开发|php教程

排序算法,简单

后端开发-php教程

$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 < $count – 1; $i ++) {

for ($j = 0; $j < $count – 1 – $i; $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 < $count – 1; $i ++) {

$p = $i;

for ($j = $i + 1; $j < $count; $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 < $count; $i ++) {

$tmp = $arr[$i];

for ($j = $i – 1; $j >= 0; $j –) {

if ($tmp < $arr[$j]) {

$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 <= 1) {

return $arr;

}

$tmp = $arr[0];

$left_array = array();

$right_array = array();

js二级导航菜单源码,用Ubuntu下载电影,tomcat服务器重装之后,web后端和爬虫,跟波哥学习php技术,seo类运营lzw

for ($i = 1; $i < $count; $i ++) {

if ($arr[$i] <= $tmp) {

$left_array[] = $arr[$i];

} else {

$right_array[] = $arr[$i];

}

$m ++;

}

android仿微信界面源码下载,ubuntu发udp,tomcat下载后放在哪,爬虫抢京东,php7安装和配置,青铜峡seo关键词推广lzw

$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 <= 1) {

return $arr;

}

$key = $arr[0]; // 取一个值,稍后用来比较;

$left_arr = array();

$right_arr = array();

for ($i = 1; $i < $count; $i ++) { // 比$key大的放在右边,小的放在左边;

if ($arr[$i] <= $key) {

$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));

?>

aa源码,vscode多段注释,ubuntu 提升音质,tomcat部署访问,sqlite统一内容合适,web前端框架开发面试题,人类爬虫人和天狼星人的区别,php 打印页面,seo实战操作教程,网站图片上下翻转,简单的网页相册源码,怎么使用网站模板lzw

以上就介绍了简单排序算法,包括了排序算法,简单方面的内容,希望对PHP教学有兴趣的朋友有所帮助。

如果觉得《简单排序算法 java排序算法 排序算法总结 堆排序算》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。