PHP 배열 정렬 방법 공유(버블정렬, 선택정렬)

WBOY
풀어 주다: 2016-07-25 09:04:04
원래의
1213명이 탐색했습니다.
  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]<$arr[$j 1];
  8. else if($style=='stb') $op=$arr[$j]>$arr[$j 1];
  9. if($op)
  10. {
  11. $temp=$arr[$j];
  12. $arr[$j]=$arr[$j 1];
  13. $arr[$j 1]=$temp;
  14. $flag=true;
  15. }
  16. }
  17. if($flag==false)
  18. {
  19. break;//当一次横向循环下来flag==false;说明纵向循环里每次相邻元素比较大小时if条件均不满足,即从小到大已排好,无需再横向循环
  20. }
  21. }
  22. foreach ($arr as $key => $value)
  23. {
  24. echo $value.',';
  25. }
  26. }
  27. $arr1=array(101,101,-9,-8,0,76,1,57,43,90,23,-56);
  28. maoPao($arr1,'stb');//small to big
  29. ?>
复制代码

有关冒泡排序的例子,大家还可以参考如下的文章: 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]<$arr[$j];
  13. else if($style=='stb') $op=$arr[$i]>$arr[$j];
  14. if($op)
  15. {
  16. $temp=$arr[$i];
  17. $arr[$i]=$arr[$j];
  18. $arr[$j]=$temp;
  19. $flag=true;
  20. }
  21. }
  22. if($flag==false)
  23. {
  24. break;
  25. }
  26. }
  27. foreach ($arr as $key => $value)
  28. {
  29. echo $value.',';
  30. }
  31. }
  32. $arr1=array(21.5,33,90,7,-4,5,55,11);
  33. selectSort($arr1,'stb');

  34. function selectSort($arr,$style)

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

复制代码


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!