首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP 冒泡排序算法

什么是冒泡排序 ? ---- 冒泡排序的英文名是 Bubble Sort,是一种最基础的交换排序算法。...相信每个人都喝过汽水吧,在汽水中常有许多的小气泡往上飘,这是因为组成气泡的二氧化糖比水要轻,所以小气泡才会一点一点往上浮,而冒泡排序之所以叫冒泡排序,正是因为这种排序算法的每一个元素都可以像小气泡一样,...冒泡排序算法 ---- 一组无序的数列想要从小到大排序,通过遍历数组,比较相邻的两个元素,当左边的值大于右边的值时,交换双方的值 这是标准的冒泡排序算法,排序过程如下图所示: /** * 冒泡排序算法...1]) { $tmp = $arr[$j]; $arr[$j] = $arr[$j + 1]; $arr[$j + 1] = $tmp; } } } return $arr; } 推荐文章 ---- 冒泡排序算法

85230
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    算法冒泡排序

    本文内容: 1、什么是冒泡排序? 2、冒泡排序的 C/OC 实现与算法分析。 算法总目录:算法? ---- 1、什么是冒泡排序?...冒泡排序:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。 核心点 :相邻元素、比较、交换 冒泡排序的过程【请放大图片,从下往上,从左往右,看】: ?...C/OC 实现与算法分析。...则有冒泡排序的时间复杂度为:Θ (n2) Objective-C (OC) 实现: 【OC 这里因为看不到源代码,所以是不是冒泡算法,就很难说,但它符合错误就交换这种思想】 // OC 中的 NSComparisonResult...---- 参考书籍/文章: 书籍:《算法设计与分析基础 美 莱维汀 第3版》 书籍:《啊哈!算法》 文章:常用的累加∑公式 ---- 如有错漏,还望指出,不胜感激!

    79520

    冒泡排序算法

    冒泡排序算法 原理 比较相邻的两个数,将值较大的元素放在最前面,由于较小的数字像泡泡一样浮上来,因此取名为冒泡 从后向前比较(小的数上浮) 第一趟:从数组的最后一个元素和倒数第二个元素比较,小的上浮(交换...第四趟,第五趟……………………………… 从上面我们可以得出,假设数组中有n个元素,那么需要经过n-1趟排序才可以完成全部的比较,最后一趟可以比较出倒数第一个和倒数第二个元素的大小 实现 /** * 冒泡排序算法之从后向前比较排序...第四趟…………………………………………………… 从上面我们可以得出结论: 假设有n个元素,那么总共需要进行n-1趟排序 实现 /** * 冒泡排序算法之从前向后比较排序 * @param a

    55530

    冒泡排序算法

    冒泡排序算法思想 两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位。...冒泡排序算法的运作过程:(从小到大排序) 设数组a[0..n-1]长度为n, 1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。...空间复杂度,冒泡排序是原地排序,空间复杂度为O(1)。冒泡排序算法是稳定的排序算法。...---- 冒泡排序算法伪代码 //冒泡排序 BUBBLE_SORT(A) { for i = length[A] to 2 { for j = 1 to i-1...> A[j+1] { exchange A[j] and A[j+1]; } } } } Test 用冒泡排序算法对数组

    66010

    java冒泡算法

    冒泡排序是一种简单而有效的排序算法,它通过比较相邻的元素并交换它们来对一个数组进行排序。冒泡排序的时间复杂度为O(n^2),因此它通常用于小型数据集的排序。...在本文中,我们将介绍Java中的冒泡排序算法,包括其实现和示例代码。冒泡排序算法的基本原理是:重复地遍历数组中的元素,比较相邻的两个元素,并根据需要交换它们的位置,直到整个数组都已经排好序。...下面是冒泡排序算法的Java代码实现:public static void bubbleSort(int[] arr) { int n = arr.length; for (int i =...除了上述的普通冒泡排序算法之外,还有一种优化过的冒泡排序算法,称为鸡尾酒排序(又称双向冒泡排序)。...它的基本思想是从左到右遍历数组进行一轮冒泡排序,然后从右到左遍历数组进行一轮冒泡排序,如此交替进行,直到整个数组都已经排序好。这种算法可以减少排序所需的时间,特别是当数组中存在大量的有序元素时。

    71820

    java编写冒泡排序源代码,用java实现冒泡排序算法,java冒泡算法

    参考链接: Java程序以实现冒泡排序算法 用java实现冒泡排序算法,java冒泡算法  冒泡排序的算法分析与改进  交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换...2、冒泡排序过程示例  对关键字序列为49 38 65 97 76 13 27 49的文件进行冒泡排序的过程  3、排序算法  (1)分析  因为每一趟排序都使有序区增加了一个气泡,在经过n-1趟排序之后...冒泡排序最好的时间复杂度为O(n)。  (2)算法的最坏时间复杂度  若初始文件是反序的,需要进行n-1趟排序。...(4)算法稳定性  冒泡排序是就地排序,且它是稳定的。  ...5、算法改进  上述的冒泡排序还可做如下的改进:  (1)记住最后一次交换发生位置lastExchange的冒泡排序  在每趟扫描中,记住最后一次交换发生的位置lastExchange,(该位置之前的相邻记录均已有序

    3.6K30

    算法冒泡排序

    冒泡排序算法需要遍历几次数组。每次遍历都要比较连续相邻的元素,如果某一对相邻元素是降序,则互换它们的值,否则,保持不变。由于较小的值像“气泡”一样逐渐浮想顶部,而较大的值沉向底部,所以叫冒泡排序。...冒泡排序的图解是: ? 总结一句话就是:连续比较相邻的元素,降序则呼唤。有n个数,共需要比较n-1趟,第i趟,需要比较n-i次。...算法分析: 最差的情况下,冒泡排序算法需要进行n-1次遍历。....+2+1=n(n-1)/2=O(n2) 冒泡排序的时间复杂度为O(n2) 冒泡算法的改进: 冒泡排序的效率比较低,所以我们要通过各种方法改进。...泛型冒泡排序: 例1:元素实现comparable接口。

    74170
    领券