php 插入排序程序代码
插入排序是各种排名中一种了,今天小编就为各位介绍插入排序使用php来实现 了,有兴趣的朋友不防进来来看看吧.
排序算法的种类是多种多样,各有各的长处,这几天会一一进行分析,学习应该有一个先后递进的过程,从容易的开始,先说比较简单的 — 插入排序,由PHP代码实现,这里不讲究效率.
/** * 插入排序 -- 比冒泡稍微复杂一点的排序算法 * * **/ $array = array('5','6','3','1','2','4'); /** * 插入排序1 -- 使用最暴力的排序 * **/ function insertSort($array) { $count = count($array); //先取出一个数据最为比较数据 for($i=1;$i<$count;$i++) { $key = $array[$i]; $j = $i-1; while($j>=0 && $array[$j]>$key) { //phprm.com $array[$j+1] = $array[$j]; $j = $j-1; $array[$j+1] = $key; } var_dump($array); } } insertSort($array);
로그인 후 복사
嗯,整个算法已经完了,如果你只想要代码的,你事情已经完成了,下面开始讲原理,插入排序之所以叫插入排序,我们可以形象的理解为:
你摸牌的时候,你手里的牌是有序的,而你从牌堆里摸的牌是随机出现的,你只需跟你手里的牌进行比较排序,就能确定新牌的位置.
插入的排序的逻辑可以简单的理解为,从第二个元素前,开始跟第一个元素进行比较,如果比对一个元素小,该元素就插入到第一个元素的前面.
如果大,则跟第二个元素进行比较,以此类推.
再来看看插入排序的时间发杂度:
最优的情况,所有的N-1个元素只需要跟前面的元素比较一次,那么时间复杂度是n-1;
最差的勤快,所有的N-1个元素都需要跟前面的所有元素比较一次,那么时间复杂度是一个等差数列 ((n-1)*(n-2))/2+(n-1);
综上所述:插入排序的时间复杂度应该是位于这两则之间.
空间复杂度:插入排序是一种线性排序,所有空间复杂度跟参与排序的N有关.
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
1 몇 달 전
By DDD
R.E.P.O. 파일 저장 위치 : 어디에 있고 그것을 보호하는 방법은 무엇입니까?
1 몇 달 전
By DDD
R.E.P.O. 최고의 그래픽 설정
2 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
1 몇 주 전
By DDD

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7390
15


자바 튜토리얼
1630
14


Cakephp 튜토리얼
1357
52


라라벨 튜토리얼
1268
25


PHP 튜토리얼
1216
29

