太原PHP培训
达内太原php培训中心

0351-5608878

热门课程

四种基本排序算法以及PHP实现

  • 时间:2016-10-13
  • 发布:锅子博客
  • 来源:锅子博客

四种基本排序算法以及PHP实现

Php中有很多的算法,尤其是排序的算法,今天太原php培训班为大家带来4中常用的算法排序。

因为之前没有编程基础,最近才知道排序算法这个概念,原来平时在操作数组的时候是用到算法这玩意的。

从网上找了下资料,都一个来源; $ arr = array ( 1 , 43 , 54 , 62 , 21 , 66 , 32 , 78 , 36 , 76 , 39 ) ; 做例子排序。

1. 冒泡排序

原理:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即,每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

理解:

假设有10个数:

没排完 排完

********* * (没排完的数中冒出一个最大的)

******** ** (没排完的数中冒出一个最大的放到排完的中,成为第二大的)

... ...

... ...

* ********* (直到没排完的只剩一个最小的,排序完成;过程中没排完的实际上是混序的,两两冒泡不会有排序效果,只是筛选出哪个大哪个小)

2. 选择排序

原理:在要排序的一组数中,选出最小的一个数与第一个位置的数交换。然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。

理解:

假设有10个数:

排完 没排完

* ********* (所有中抽出一个最小的,放到第一个)

** ******** (没排完的抽出一个最小的,放到第二个)

... ...

... ...

********* * (直到抽完所有的数,排序完成)

3. 插入排序

原理:在要排序的一组数中,假设前面的数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。

理解:

假设有10个数:

排完 没排完

* ********* (拿出没排完的第一个数,到排完的中进行排序)

** ******** (拿出没排完的第一个数,到排完的中进行排序)

... ...

... ...

********* * (拿出没排完的最后一个数,到排完的中进行排序;期间是两两比较方式)

4. 快速排序

原理:选择一个基准元素,通常选择第一个元素或者最后一个元素。通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素。此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。

理解:

假设有10个数:

小于拿出 拿出 大于拿出

*** * ******

小于拿出 再拿出 大于拿出 之前拿出 小于拿出 再拿出 大于拿出

* * * * ** * ***

... ...

... ...

**********

如此循环直到最后全部拆开,再合起来,排序完成。

5. 总结

冒泡排序: 逐渐筛选出最大值

选择排序:逐渐筛选出最小值

插入排序:按顺序一个一个取出进行排序

快速排序:逐渐递归拆分进行排序,直至全部拆分排序完成

好了,今天就给大家讲这么多吧,喜欢我的内容可以关注或者分享(微信公众平台:tytedu)选择太原达内培训,不再孤军奋战,轻轻松松做IT高薪白领。太原达内培训带领有明确目标的学子迈向成功之路!

上一篇:PHP7.0.0格式化字符串漏洞与EIP劫持分析
下一篇:跨平台PHP调试器设计及使用方法——立项

太原php培训资源站

太原PHP编程开发并发编程槽与坑

Php开发规划自己的路

太原php培训老生常谈php

选择城市和中心
贵州省

广西省

海南省

台湾