61阅读

快速排序冒泡排序-数据库中的排序方法冒泡排序法,快速排序法,简单插入排序法,希尔排

发布时间:2017-10-07 所属栏目:快速排序与冒泡排序

一 : 数据库中的排序方法冒泡排序法,快速排序法,简单插入排序法,希尔排

数据库中的排序方法

冒泡排序法,快速排序法,简单插入排序法,希尔排序法,简单选择排序法,堆排序法,都是什么意思?谢谢各位了。


可以看看数据结构这本书,里面专门有各种排序算法的讲解,要简单的话可以看看我wytopkk共享的数据结构SWF演示(需要安装一个Flash动画播放器,网络上可以下载。),里面有这几种排序的动画演示。

二 : php冒泡排序快速排序


$a=array('3','8','1','4','11','7');
print_r($a);
$len = count($a);
//从小到大
for($i=1;$i<$len;$i++)
{
for($j=$len-1;$j>=$i;$j--)
if($a[$j]<$a[$j-1])
{//如果是从大到小的话,只要在这里的判断改成if($b[$j]>$b[$j-1])即可了
$x=$a[$j];
$a[$j]=$a[$j-1];
$a[$j-1]=$x;
}
}
print_r($a);j

//另1种方法 从小到大

$b=array('4','3','8','9','2','1');
$len=count($b);
for($k=1;$k<$len;$k++)
{
for($j=$len-1,$i=0;$i<$len-$k;$i++,$j--)
if($b[$j]<$b[$j-1]){

//如果是从大到小的话,只要在这里的判断改成if($b[$j]>$b[$j-1])即可了
$tmp=$b[$j];
$b[$j]=$b[$j-1];
$b[$j-1]=$tmp;
}
print_r($b);
echo "
";
}

//下面的这个执行效率更高

function maopao($arr)
{
$len = count($arr);
for($i=1; $i<$len;$i++)//最多做n-1趟排序
{
$flag =false;//本趟排序开始前,交换标志应为假
for($j=$len-1;$j>=$i;$j--)
{
if($arr[$j]<$arr[$j-1])//交换记录
{//如果是从大到小的话,只要在这里的判断改成if($arr[$j]>$arr[$j-1])即可了
$x=$arr[$j];
$arr[$j]=$arr[$j-1];
$arr[$j-1]=$x;
$flag= true;//发生了交换,故将交换标志置为真
}
}
if(!$flag)//本趟排序未发生交换,提前终止算法
return$arr;
}
}
$shuz = array('2','4','1','8','5');
$bb = maopao($shuz);
print_r($bb);

// 快速排序
function kuaisu($arr){
$len= count($arr);
if($len<= 1){
return$arr;
}
$key= $arr[0];
$left_arr= array();
$right_arr= array();
for($i=1;$i<$len;$i++){
if($arr[$i]<= $key){
$left_arr[]= $arr[$i];
}else{
$right_arr[]= $arr[$i];
}
}
$left_arr= kuaisu($left_arr);
$right_arr= kuaisu($right_arr);
returnarray_merge($left_arr, array($key), $right_arr);
}
$arr = arra(www.61k.com]y(23,98,54,2,9,62,34);
print_r(kuaisu($arr));

三 : PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】

本文实例总结了PHP常用排序算法。分享给大家供大家参考,具体如下:

 class bevin{ public $public = 'public'; private $private = 'private'; protected $protected = 'protected'; //final $final = 'final'; static $static = 'static'; function __construct(){  $this->protected = 'change private'; } public function setValue($a){  self::$static = $a; } public function getValue(){  echo $this->private; } function __destruct(){  echo 'asdfsadf'; } } class paixu { // 基本排序 public function t_sortArray($array) {  if(is_array($array) && count($array)>1) {  for($i=0; $i<count($array); $i++) {  for($j=($i+1); $j<count($array); $j++) {  $temp = $array[$i];  if($array[$j]<$array[$i]) {  $array[$i] = $array[$j];  $array[$j] = $temp;  }  }  }  return $array;  } else {  return $array;  } } // 冒泡排序 public function c_sortArray($array) {  if(!is_array($array) || count($array)<=1){ return $array; }  $status = false;  foreach($array as $key=>$v) {  if($key>0) {  if($array[$key-1]>$array[$key]) {  $array[$key] = $array[$key-1];  $array[$key-1] = $v;  $status = true;  }  }  }  if($status) {  return $this->c_sortArray($array);  } else {  return $array;  } } // 快速排序 public function v_sortArray($array) {  if(!is_array($array) || count($array)<=1){ return $array; }  if(count($array)>2) {  $m = $array[floor(count($array)/2)+1];  } else {  if($array[0]>$array[1]) {  $temp = $array[0];  $array[0] = $array[1];  $array[1] = $temp;  }  return $array;  }  $leftarray = array();  $rightarray = array();  foreach($array as $key=>$v) {  if($v>$m) {  $rightarray[] = $v;  }  if($v<$m) {  $leftarray[] = $v;  }  if($v==$m) {  $mid[] = $v;  }  }  $nleftarray = $this->v_sortArray($leftarray);  $nrightarray = $this->v_sortArray($rightarray);  return array_merge($nleftarray,$mid,$nrightarray); } // 直接插入排序 public function i_sortArray($array) {  if(!is_array($array) || count($array)<=1){ return $array; }  $newarray = array($array[0]);  $temp = 0;  foreach($array as $k=>$v) {  if($k>0) {  if($v>=$newarray[count($newarray)-1]) {  $newarray[] = $v;  } else {  foreach($newarray as $nk=>$nv) {  if($v<$nv) {  $temparray = array();  foreach($newarray as $ck=>$cv) {  if($ck<$nk) {  $temparray[$ck] = $cv;  } elseif($ck==$nk) {  $temparray[$ck] = $v;  $temparray[($ck+1)] = $cv;  } else {  $temparray[($ck+1)] = $cv;  }  }  $newarray = $temparray;  break;  }  }  }  }  }  return $newarray; } } $bevin = new paixu; $array = array(5,4,5,4,4,5,5,5,5,5); $v = $bevin->t_sortArray($array); print_r($v); $v = $bevin->c_sortArray($array); print_r($v); $v = $bevin->v_sortArray($array); print_r($v); $v = $bevin->i_sortArray($array); print_r($v); 

运行结果:

 Array (  [0] => 4  [1] => 4  [2] => 4  [3] => 5  [4] => 5  [5] => 5  [6] => 5  [7] => 5  [8] => 5  [9] => 5 ) Array (  [0] => 4  [1] => 4  [2] => 4  [3] => 5  [4] => 5  [5] => 5  [6] => 5  [7] => 5  [8] => 5  [9] => 5 ) Array (  [0] => 4  [1] => 4  [2] => 4  [3] => 5  [4] => 5  [5] => 5  [6] => 5  [7] => 5  [8] => 5  [9] => 5 ) Array (  [0] => 4  [1] => 4  [2] => 4  [3] => 5  [4] => 5  [5] => 5  [6] => 5  [7] => 5  [8] => 5  [9] => 5 ) 

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php排序算法总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php常用函数与技巧总结》、《PHP错误与异常处理方法总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

本文标题:快速排序冒泡排序-数据库中的排序方法冒泡排序法,快速排序法,简单插入排序法,希尔排
本文地址: http://www.61k.com/1068232.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1