Heim  >  Artikel  >  Backend-Entwicklung  >  php 数组排序方法分享(冒泡排序、选择排序)

php 数组排序方法分享(冒泡排序、选择排序)

WBOY
WBOYOriginal
2016-07-25 09:04:041227Durchsuche
  1. function maoPao($arr,$style)//默认传递的是值,不是地址。如果在$arr前加个&,则和$arr1指向同一个地址,函数外的$arr1也被排好了
  2. {
  3. $temp=0;
  4. $flag=false;
  5. for($i=0;$i{
  6. for($j=0;$j{
  7. if($style=='bts') $op=$arr[$j]else if($style=='stb') $op=$arr[$j]>$arr[$j+1];
  8. if($op)
  9. {
  10. $temp=$arr[$j];
  11. $arr[$j]=$arr[$j+1];
  12. $arr[$j+1]=$temp;
  13. $flag=true;
  14. }
  15. }
  16. if($flag==false)
  17. {
  18. break;//当一次横向循环下来flag==false;说明纵向循环里每次相邻元素比较大小时if条件均不满足,即从小到大已排好,无需再横向循环
  19. }
  20. }
  21. foreach ($arr as $key => $value)
  22. {
  23. echo $value.',';
  24. }
  25. }
  26. $arr1=array(101,101,-9,-8,0,76,1,57,43,90,23,-56);
  27. maoPao($arr1,'stb');//small to big
  28. ?>
复制代码

有关冒泡排序的例子,大家还可以参考如下的文章: php冒泡排序之交换排序法 又一个php冒泡排序(bubble sort)的例子 php实现冒泡排序算法的代码 php冒泡排序算法一例 php冒泡排序与快速排序的例子 2、选择排序: 第二个数至第n个数分别与第一个数比较,进行交换,第三个数至第n个数分别与第二个数比较,进行交换,直到排序完成。

  1. /**

  2. *
  3. *
  4. *
  5. */
  6. function selectSort($arr,$style)
  7. {
  8. $temp=0;
  9. $flag=false;
  10. for($i=0;$i{
  11. for($j=$i+1;$j{
  12. if($style=='bts') $op=$arr[$i]else if($style=='stb') $op=$arr[$i]>$arr[$j];
  13. if($op)
  14. {
  15. $temp=$arr[$i];
  16. $arr[$i]=$arr[$j];
  17. $arr[$j]=$temp;
  18. $flag=true;
  19. }
  20. }
  21. if($flag==false)
  22. {
  23. break;
  24. }
  25. }
  26. foreach ($arr as $key => $value)
  27. {
  28. echo $value.',';
  29. }
  30. }
  31. $arr1=array(21.5,33,90,7,-4,5,55,11);
  32. selectSort($arr1,'stb');
  33. function selectSort($arr,$style)

  34. {
  35. $temp=0;
  36. $flag=false;
  37. for($i=0;$i{
  38. for($j=$i+1;$j{
  39. if($style=='bts') $op=$arr[$i]else if($style=='stb') $op=$arr[$i]>$arr[$j];
  40. if($op)
  41. {
  42. $temp=$arr[$i];
  43. $arr[$i]=$arr[$j];
  44. $arr[$j]=$temp;
  45. $flag=true;
  46. }
  47. }
  48. if($flag==false)
  49. {
  50. break;
  51. }
  52. }
  53. foreach ($arr as $key => $value)
  54. {
  55. echo $value.',';
  56. }
  57. }
  58. $arr1=array(21.5,33,90,7,-4,5,55,11);
  59. selectSort($arr1,'stb');
  60. echo "
    ";
  61. ?>
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn