백엔드 개발 PHP 튜토리얼 PHP 배열 정렬 방법 공유(버블정렬, 선택정렬)

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

Jul 25, 2016 am 09:04 AM

  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. ?>

复制代码


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

PHP 튜토리얼
1596
276
PHP의 객체 관계 매핑 (ORM) 성능 튜닝 PHP의 객체 관계 매핑 (ORM) 성능 튜닝 Jul 29, 2025 am 05:00 AM

N 1 쿼리 문제를 피하고 관련 데이터를 미리로드하여 데이터베이스 쿼리 수를 줄입니다. 2. 메모리와 대역폭을 저장하기 위해 완전한 엔티티를로드하지 않도록 필요한 필드 만 선택하십시오. 3. 교리의 2 차 캐시 또는 Redis 캐시 고주파 쿼리 결과와 같은 캐시 전략을 합리적으로 사용하십시오. 4. 엔티티 수명주기를 최적화하고 정기적으로 Clear ()을 호출하여 메모리를 자유롭게하여 메모리 오버플로를 방지합니다. 5. 데이터베이스 색인이 존재하는지 확인하고 비효율적 인 쿼리를 피하기 위해 생성 된 SQL 문을 분석하십시오. 6. 변경 사항이 필요하지 않은 시나리오에서 자동 변경 추적을 비활성화하고 배열 또는 경량 모드를 사용하여 성능을 향상시킵니다. ORM을 올바르게 사용하려면 개발 효율을 유지하면서 응용 프로그램 성능을 보장하기 위해 SQL 모니터링, 캐싱, 배치 처리 및 적절한 최적화를 결합해야합니다.

Readonly 속성으로 PHP에 불변의 물체를 구축합니다 Readonly 속성으로 PHP에 불변의 물체를 구축합니다 Jul 30, 2025 am 05:40 AM

readOnlyPropertiesInphp8.2CanonlyBeassignedOnedOneDonceIntheConstructorAratDeclarationandCannotBemodififificificificifified

cryptocurrency 계산 처리 : PHP에서 BCMATH가 필수적인 이유 cryptocurrency 계산 처리 : PHP에서 BCMATH가 필수적인 이유 Aug 01, 2025 am 07:48 AM

bcmathissessentialforaccuratecryptocurrencyculationsinphpbecausefloating-pointarithmeticintructionceptaberoundingercations.1.Floating-pointnumbers like0.1 0.2yieldimprecessults (예 : 0.3000000000000004)

값으로서의 문자열 : 도메인 별 문자열 유형에 대한 현대적인 접근 값으로서의 문자열 : 도메인 별 문자열 유형에 대한 현대적인 접근 Aug 01, 2025 am 07:48 AM

RawStringsIndomain-DrivenApplications는 ValueObjectStoprevervugsandimprovetypesafety를 valuebleberplectedshouldberepled에 배치합니다

PHP 엔진의 일정한 표현 평가 이해 PHP 엔진의 일정한 표현 평가 이해 Jul 29, 2025 am 05:02 AM

phpevaluatesConstantExpressionSAtCompileTimetoimProvePerformanceandenableAreclyErrordetection.1. ConstantExpressionEvaluationMeanScomputingValuesDuringCompilationwhenAlloperAndsArnStantsLikeliterals, ClassConstants, OrpredefinedConstants.2.Php'se

데이터 스크래핑 및 웹 자동화에 PHP 사용 데이터 스크래핑 및 웹 자동화에 PHP 사용 Aug 01, 2025 am 07:45 AM

ustuzzleforrobusthtttprequestswithHeadSandtimeouts.2.parsehtMleffiallywithSymfonyDomcraWlerusingcsSelectors.3. handlejavaScript-heaVysitesByIntegratingPuppetErgateErgateEcpExec () TorenderPages.4.Resptobots.txt, AddDelays, andUsepoTecpexec () TorenderPages

PHP의 부동 소수 부정확성의 함정 탐색 PHP의 부동 소수 부정확성의 함정 탐색 Jul 29, 2025 am 05:01 AM

플로팅 포인트 수는 부정확합니다. PHP에서는 일반적인 문제입니다. 대답은 IEEE754 이중 프리즈 형식을 사용하여 소수점 소수를 정확하게 표현할 수 없게 만듭니다. 1.0.1 또는 0.2와 같은 숫자는 이진의 무한 루프 소수이며 컴퓨터는 오류를 일으키기 위해 잘라야합니다. 2. 부동 소수점 번호를 비교할 때는 abs ($ a- $ b)와 같은 == 대신 공차를 사용해야합니다.

포장 풀기 성능 : PHP 스위치에 대한 진실 대 If-Else 포장 풀기 성능 : PHP 스위치에 대한 진실 대 If-Else Aug 02, 2025 pm 04:34 PM

SwitchCanbeslightllyFasterthanif-ELSEWHENCOMOMOPINGASINGLEVARIABLEAGAINSTMULTIPLESCALARVALUS, 특히 MANYCASESORCASSOUSUUDINGETEGERSDUETOSSIBLEJUMPTableOPTIMITION; 2.IF-ELSEOISE VALEATEDESTEMENTIOLYANDERSURTERCOMPENXCONDITIONSINVOLVENTIVEDIFF

See all articles