基本排序算法(冒泡插入选择快排)
Posted 理想者1988
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本排序算法(冒泡插入选择快排)相关的知识,希望对你有一定的参考价值。
1.首先定义一个需要排序的数组:
$arr=array(12,432,123,454,232,123,349,3,5,745,90);
2.冒泡排序:相邻之间的数据做对比,每次对比后得出一个下次不需要再对比的数据。
function maopao($arr){ $len=count($arr); for($i=0;$i<$len;$i++){ for($j=0;$j<$len-$i;$j++){ if($arr[$j]<$arr[$j+1]){ $temp=$arr[$j; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$temp; } } } return $arr; }
3.插入排序:每次从待排序的一组数中取一个数与已排序的数据做对比。
function charu($arr){ $len=count($arr); for($i=1;$i<$len;$i++){ for($j=$i;$j>0;$j--){ if($arr[$j]>$arr[$j-1]){ $temp=$arr[$j]; $arr[$j]=$arr[$j-1]; $arr[$j-1]=$temp; } } } return $arr; }
4.选择排序:每次从待排序的一组数中判断最小或最大的数,并交换位置。
function xuanze($arr){ $len=count($arr); for($i=0;$i<$len-1;$i++){ $key=$i; for($j=$i+1;$j<$len;$j++){ if($arr[$key]<$arr[$j]){ $key=$j; } } if($key!=$i){ $temp=$arr[$key]; $arr[$key]=$arr[$i]; $arr[$i]=$temp; } } return $arr; }
5.快速排序:以某值作参考,以该值为基准,分割带排序数组,最后递归合并。
function quicksort($arr){ $len=count($arr); if($len<=1) return $arr; $left=array(); $right=array(); $key=$arr[0]; for($i=1;$i<$len;$i++){ if($arr[$i]>$key) $right[]=$arr[$i]; else $left[]=$arr[$i]; } $left=quicksort($left); $right=quicksort($right); return array_merge($left,array($key),$right); }
6.未尽事宜,请多交流
以上是关于基本排序算法(冒泡插入选择快排)的主要内容,如果未能解决你的问题,请参考以下文章
八大排序算法C语言过程图解+代码实现(插入,希尔,选择,堆排,冒泡,快排,归并,计数)
常见排序算法基本原理及实现(快排,归并,堆排,直接插入.....)