目录1、前言2、冒泡排序2.1 算法思路2.2 代码实现过程:3、代码优化3.1 趟数优化3.2 循环次数优化3.3 排序完成优化4、结语1、前言我们书接上回,接着数组中的遗留问题来讲解这节的冒泡排序,干货满满,里面还涉及到代码的优化,希望大家有所收获2、冒泡排序冒泡排序思想:给定一个数组,让数组升序 (降序) 排序。2.1 算法思路假设排升序:将数组中相邻元素从前往后依次进行比较,如果
冒泡排序java实现及优化
转载 2016-11-30 09:06:14
133阅读
一、什么是冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同
1.冒泡排序冒泡排序(Bubble Sort)是最经典也是最简单的排序算法之一。原理:比较相邻的两个元素,将值大的元素交换到右边(降序则相反).步骤:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对
public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length-1; i++) { for (int j = 0; j < arr.length-1-i; j++) { if(arr[j] > arr[j+1]) {
原创 2023-07-09 21:34:08
110阅读
常用的排序算法主要包括:1、插入排序直接插入排序希尔排序2、交换排序冒泡排序快速排序3、选择排序简单选择排序排序快速排序4、归并排序其中,冒泡排序算是最简单的一种排序算法排序思想:对一组数字进行从小到大或者从大到小的进行排序。它是通过让相邻的两个元素进行比较,大的元素向下沉,小的元素向上冒arr[0]与arr[1]进行比较,如果前者大于后者,则交换位置然后arr[1]与arr[2]进行比较,以此
原创 2018-05-06 08:04:46
9794阅读
2点赞
1.基础版本 public static void main(String[] args){ int[] arr1= {1,2,6,36,10
原创 2023-01-10 11:26:29
61阅读
应该是大多数人接触的第一种排序方法,虽然它的时间复杂度为O(n
原创 2023-03-22 15:08:16
226阅读
冒泡排序优化
原创 2022-10-13 11:33:42
78阅读
优化冒泡排序
原创 2023-10-13 15:29:56
97阅读
【算法】Java排序算法(更新中)1、冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。排序原理: 1. 比较相邻的元素。如果前一个元素比后一个元素大,就交换这两个元素的位置。 2. 对每一对相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素。最终最后位置的元素就是最大 值。冒泡排序的时间复杂度分析 冒泡排序使用了双层for循环,其中内层循环的循环体是真正
1、冒泡排序Bubble Sort,最简单的排序算法之一;步骤:重复遍历数组,比较相邻元素,每一趟遍历都将此趟遇到的最大数放到数组后方;趟数:n 个数据的数组,冒泡排序最多需要排序 n-1 趟才能完成排序(未优化的);复杂度:平均时间复杂度为O(n^2);稳定性:冒泡排序中,如果两个元素相等,是不会再交换的,所以冒泡排序是一种稳定排序算法。2、Java代码package Algorithm.Sor
排序,就是把一个乱序的数组,通过代码的处理,让它变成一个有序的数组。冒泡排序(Bubble Sort)和选择排序都是简单直观的排序算法。今天我们来用JS实现冒泡排序和选择排序。 学习排序就会涉及到交换,那么如何交换呢?交换分为两种情况:相邻两两比较,按一定顺序交换(冒泡排序)拿一个数去跟假设的值比较,条件不符合则交换(选择排序)由此引申出以下两种排序算法:1.冒泡排序冒泡排序算法的原理如下: a.
1、冒泡排序的基本写法以及优化写法
原创 精选 2023-03-02 17:17:16
302阅读
以下是Python实现冒泡排序的代码:格式有点问题,重新调整一下,如下:def bubbleSort(nums): # 设置一个flag,用来判断某次循环是否发生了交换 flag = True for i in range(len(nums) - 1): for j in range(len(nums) - 1 - i): if nu
冒泡核心思想:冒泡排序向右边冒泡的话,结果就是最后一个数就是最大的冒泡排序向左边冒泡的话,结果就是第一个数就是最小的这个好像不是冒泡吧。。。private static void maoPaoSort(in
普通冒泡排序public class Main { //准备数组 static int arr[] = {3,9,-1,10,-2}; public static void main(String[] args) { bu
原创 2022-10-11 16:58:57
65阅读
package com.atguigu.sort;import java.util.Arrays;/** * @创建人 wdl * @创建时间 2021/3/21 * @描述 */public class BubbleSort { public static void main(String[] args) { int arr[]={3,9,-1,10,20}; //为了容易理解,我们吧冒泡排序的演变过程给大家展示 //第一趟排序,就
package com.atguigu.sort;import java.util.Arrays;/** * @创建人 wdl * @创建时间 2021/3/21 * @描述 */public class BubbleSort { public static void main(String[] args) { int arr[]={3,9,-1,10,20}; //为了容易理解,我们吧冒泡排序的演变过程给大家展示 //第一趟排序,就
原创 2022-02-12 10:36:22
70阅读
 01冒泡排序 冒泡排序算法思想简单来说:在内层一次遍历中,arr[j] 与 arr[j - 1] 进行比较,如arr[j - 1] < arr[j], 不改变,反之互换值,保证arr[j]存储着 0~j - 1中的最大值,随一次遍历当前数组最大值也下沉至末尾,经过n - 1次外层循环,可使n - 1个元素下沉,最后一个元素位置确定,排序完成。 举个例子方便理解, 例1:例如原数组
  • 1
  • 2
  • 3
  • 4
  • 5