吾爱乐享
个人学习网站

php学习之数组的相关知识-冒泡排序

说明:

排序就是对某组数据进行升序或降序的方式排列,排序都是针对的索引数组

排序就是将一组数据按照指定的顺序进行排列的过程

排序的分类:

  1. 内部排序:指将需要处理的数据都加载到内部存储器中进行排序,包括交换式排序,选择试排序和插入式排序

  2. 外部排序:数据量过大,无法全部加载到内存,需要借助外部存储进行排序,包括合并排序和直接合并排序法

冒泡排序

基本思想:通过对待排序序列从后到前(从下标较大的元素开始)一次比较相邻元素的排序码明若发现逆序则交换,使排序较小的元素逐渐从后向前移动,就像水底气泡一样逐渐向上冒

因为排序的过程中,各元素不断接近自己的位置,如果一躺比较下来没有进行过交换没救说明序列有序,因此要在排序过程汇总设置一个标志判断元素是否进行过交换,从而减少不必要的比较

从小到大排序或从大到小排序

找到从最大的下标的值和前面的值进行比较,如果前面小于后面的值,进行位置交换,以此类推,一直找到当前最大值,一次完成,继续找第二大下标的值进行比较,和它前面的值交换位置,以此类推最终排序完成

如:$arr = array(11,22,44,67,95,33,43)从小到大排序:11,22,33,43,44,67,95

冒泡原理:

  1. 从小到大排序,确定数组的长度

  2. 循环遍历找出每个值

  3. 每一个值和它下一个值进行比较,本身不比较,每次比较取出一个最小值

  4. 进行大小值交换

  5. 排序

选择排序

说明:从数组中选择一个数和其他进行比较,如果大于比较的数,交换位置

选择一个我们自己想象的一个数组为最大或最小

基本思想:

第一次从arr[0]-arr[n-1]中选取最小值,与arr[0]交换,

第二次从arr[1]-arr[n-1]中选取最小值,与arr[1]交换,

第三次从arr[2]-arr[n-1]中选取最小值,与arr[2]交换,

……

比如:$arr = array(11,55,22,44,99,77,66,33,88);从小到大排序

选择一个自己想象的最小值,一般选arr[0]的值,和后面的比较,如果大于后面的数组,这两个位置交换

赞(0) 打赏
未经允许不得转载:吾爱乐享 » php学习之数组的相关知识-冒泡排序

评论 1

评论前必须登录!

 

  1. #-49

    1234

    吾爱乐享4年前 (2020-06-11)

推荐免费资源共享,个人经验总结学习

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏