经典算法--冒泡排序(Java)

原理:将相邻元素的较大值赋给右边

思路:① 1.将集合或数组内的第一个元素与第二个元素进行比较,较大值赋给右边;

    2.将第二个元素与第三个元素进行比较,较大值赋给右边;

    .......

    (N-1).将第N-1个元素与第N个元素进行比较,较大值赋给右边;

    自此,得到集合中元素最大值并将其赋给元素N;

   ② 重复操作① 得到元素N-1的新值;得到元素N-2的新值;

    ......

    得到元素2的值,得到元素1的值

实例:

为 Arr[5] = {3,5,2,8,1}排序:

第一趟排序:

3,5,2,8,1;

3,2,5,8,1;

3,2,5,8,1;

3,2,5,1,8;

第二趟排序:

2,3,5,1,8;

2,3,5,1,8;

2,3,1,5,8;

第三趟排序:

2,3,1,5,8;

2,1,3,5,8;

第四趟排序:

1,2,3,5,8;

由此可见:N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数,即:

for(i = 0; i<arr.length-1;i++){//外层控制进行多少趟排序

  for(j = 0; j<arr.length-1-i;j++){//内层控制每趟排序进行多少次相邻元素大小的判断

    if(arr[j]>arr[j+1]){

      temp = arr[j];

      arr[j] = arr[j+1];

      arr[j+1] = temp;

    }

  }

}

原文地址:https://www.cnblogs.com/Jhonsonarek/p/8978175.html

时间: 2024-10-03 15:48:22

经典算法--冒泡排序(Java)的相关文章

Java经典算法冒泡排序

冒泡排序. 实现原理: 比较两个相邻位数的元素,将较大的元素交换到右端或左端,最大的元素就在最右端或是最左端:   从小-->大 1 public class MaoPao { 2 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 Scanner sc= new Scanner(System.in); 6 int [] num = new int [5]; 7 for (int i

三个典型的经典算法冒泡排序,插入排序,选择排序

稍微轻松点,彻底理解了一下这三个算法,当然只是部分,还有什么改良版,具体分类等等,不过下周有事,先把这几个典型的弄明白,老规矩,看代码说问题 /** * Created by fanyafeng on 2015/5/8/0008. */ public class ALGTest { public static void main(String[] args) { System.out.println("排序算法"); System.out.println("---------

回顾C#经典算法冒泡排序

冒泡算法的原理: 比较相邻的两个数字,如果第一个数字比第二个数字大,则交换它们位置 从开始第一对比较到结尾最后一对,最后一个数字就是最大数 除了最后一个数字,再次从开始第一对比较到最后一对,得出第二大的数字 重复上面操作,直到没有任何一对数字需要比较 举例说明:要排序数组:int[] arr={6,3,8,2,9,1}; 第一趟排序: 第一次排序:6和3比较,6大于3,交换位置: 3 6 8 2 9 1 第二次排序:6和8比较,6小于8,不交换位置:3 6 8 2 9 1 第三次排序:8和2比较

几个面试经典算法题Java解答

题目一: public class testClockwiseOutput { //顺时针打印一个矩阵 @Test public void test(){ int[][] num = new int[100][100]; int n = 4; int count =1; for(int i=0;i<n;i++){ for(int j =0;j<n;j++){ num[i][j]=count++; } } output(num,0,n-1); } public void output(int[]

Java中的经典算法之冒泡排序(Bubble Sort)

Java中的经典算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.重复第一趟步骤,直至全部排序完成. 举例说明:要排序数组:int[] arr={6,3,8,2,9,1}; 第一趟排序: 第一次排序:6和3比较,6大于3,交换位置:  

java 冒泡排序 经典算法题

//        冒泡排序:经典算法题.//        有一组数字 2,10,8,20,11,把这组数按照从大到小的顺序排列出来.20,11,10,8,2//        2,10,8,20,11 //        找出最大的数,放到第一位(1,2,3,4,5)//        20,10,8,2,11 //        从剩下的4个数中,找最大的(2,3,4,5)//        20,11,8,2,10 //        从剩下的3个数中,找最大的(3,4,5)//    

经典排序算法(Java版)

经典排序算法(Java版)  转载 1.冒泡排序 Bubble Sort最简单的排序方法是冒泡排序方法.这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮.在冒泡排序算法中我们要对这个“气泡”序列处理若干遍.所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确.如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置.显然,处理一遍之后,“最轻”的元素就浮到了最高位置:处理二遍之后,“次轻”的元素就浮到了次高位

算法基础——经典八大排序算法的Java及Python实现

概述 八大排序算法不用多说了,程序员算法基础必须要掌握的,现在总结一下加深记忆.下图是这八大排序算法的分类.名称.时间空间复杂度,以及稳定性. 代码 以下是经典八大排序算法的Java及Python代码,都是基于经典算法书籍<算法导论>里的伪代码实现的,我在关键语句部分附上了注释. 按照上图中的顺序分别介绍八大排序算法的实现(升序),前面是Java,后面是Python.Java的排序函数写在了一个类里,Python的排序函数则直接写出来了. 直接插入排序 public class InsertS

JAVA的六大经典算法,代码案例简化分析

java八大经典算法:冒泡.选择.快速.插入.希尔.堆.归并.基数 1.算法实现类 package com.algorithm; /** * * @Title: BubbleSort.java * @Copyright: Copyright (c) 2005 * @Description: <br> * <br> * JAVA六大经典算法<br> * 冒泡.选择.快速.插入.希尔.堆 * @Created on 2015年6月29日 下午12:48:14 * @auth