java实现冒泡排序算法

冒泡排序算法原理:

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个,
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,
  3. 针对所有的元素重复以上的步骤,除了最后一个,
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较,

创建方法:

 1     //排序方法
 2     public void bubble(int[] arr){
 3         //n个数需要n-1趟排序
 4         for(int i=0;i<arr.length-1;i++){
 5             //每趟排序比较的次数,减去已经排序过得元素
 6             for (int j = 0; j < arr.length-i-1; j++) {
 7                 //相邻两个元素比较,若arr[i]>arr[i+1],交换位置
 8                 if(arr[j]>arr[j+1]){
 9                     int tmp=arr[j];
10                     arr[j]=arr[j+1];
11                     arr[j+1]=tmp;
12                 }
13             }
14             System.out.println((i+1)+"趟排序"+Arrays.toString(arr));
15         }
16         System.out.println("排序结果:"+Arrays.toString(arr));
17     }
18 }

调用方法实现排序:

1   @Test
2     public void bubbleSort() {
3         int[] arr = {7,6,8,2,9,1,4};
4         bubble(arr);
5     }

显示结果:

1趟排序[6, 7, 2, 8, 1, 4, 9]
2趟排序[6, 2, 7, 1, 4, 8, 9]
3趟排序[2, 6, 1, 4, 7, 8, 9]
4趟排序[2, 1, 4, 6, 7, 8, 9]
5趟排序[1, 2, 4, 6, 7, 8, 9]
6趟排序[1, 2, 4, 6, 7, 8, 9]
排序结果:[1, 2, 4, 6, 7, 8, 9]
时间: 2024-12-26 16:58:57

java实现冒泡排序算法的相关文章

Java基础 -- 冒泡排序算法(带详细注释)

冒泡排序的要点: 1.多轮排序,每轮排序中选出最大的元素放在最顶端,并且下次排序不再使用该元素; 2. 使用双for循环,外层for循环控制要排序的次数(轮数), 内层for循环控制当前要排序的元素并且进行该轮排序; package com.lin.michael; import java.util.Arrays; public class Review {  public static void main(String[] args){   //冒泡排序法  int[] arr = {102,

java:快速排序算法与冒泡排序算法

 Java:快速排序算法与冒泡算法 首先看下,冒泡排序算法与快速排序算法的效率: 如下的是main方法: public static void main(String[] args) { //快速排序算法测试 int[] qArray = new int[100000]; for (int i = 0; i < 100000; i++){ qArray[i] = (int) (Math.random() * 100000); } long beforeQ = System.currentTi

Java版双向冒泡排序算法

冒泡排序算法是一种较为简单的并且稳定的排序算法,该算法的时间复杂度最好为O(n),最差时为O(n^2),需要的空间复杂度为O(1). 这里的算法稳定性是指 经过排序后,各元素仍然能保持它们在排序之前的相对次序,就称该算法是稳定的,反之,则为不稳定的. 例如,一组数排序前是a1,a2,a3,a4,a5,其中a2=a4,经过某种排序后a1,a2,a4,a3,a5,则说明这种排序是稳定的,因为a2排序前后都在a4前面:若排序的结果是a1,a4,a2,a3,a5,则该排序就不是稳定的了.------摘自

Java中数组的几个常用算法:插入算法,删除算法,冒泡排序算法

前言: 在Java中我们常常会用数组,提到数组就不得不介绍数组中常用到的几个算法. 有插入算法,删除算法,冒泡排序算法等. 在学习这几个数组的算法前,我们先来了解一下关于数组一些基本知识. 数组的基本知识: 数组的定义:数组(Array)是相同数据类型的数据的有序集合. 数组是引用数据类型. 数组的三个特点: [1]数组长度是确定.数组一旦申请完空间,长度不能发生变化,用length属性访问. [2]数组的元素都是同一数据类型. [3]数组是有序的 .每个元素通过下标/索引标记,索引从0开始.

我的Java开发学习之旅------&gt;Java经典排序算法之冒泡排序

冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端. 一.算法原理 冒泡排序算法的运作如下: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 3.

java常见数据算法_冒泡排序

常见的算法有非常多,今天我们就一起看看常见的算法之冒泡排序.冒泡排序的主要核心思想就是:比较相邻两个元素,如果前一个元素的值比后一个元素的值大,则进行交换,经过对每个元素的比较,最后将最大的元素设置成最后一个元素,循环重复该操作,最后形成从小到大排序. 下面来看看我们的实例代码: 1.准备我们的数组 2.准备数组的常用操作方法 3.编写冒泡排序算法 4.测试冒泡排序算法的正确性: package com.zcp.ch02; /** @author Administrator 冒泡排序的实现*/p

Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法

Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序. 先来看看 8种排序之间的关系: 1.直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2]

Java数据结构和算法之数组与简单排序

一.数组于简单排序 数组 数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信息分组的便利方法. 一维数组 一维数组(one‐dimensional array )实质上是相同类型变量列表.要创建一个数组,你必须首先定义数组变量所需的类型.通用的一维数组的声明格式是: type var‐name[ ]; 获得一个数组需要2步: 第一步,你必须定义变量所需的类型. 第二步,你必

改进的冒泡排序算法二

/** * Project Name:Algorithm * File Name:BubbleSortImprove2.java * Package Name: * Date:2017年9月14日上午11:30:48 * Copyright (c) 2017, [email protected] All Rights Reserved. * */ /** * ClassName:BubbleSortImprove2 * Function: 改进的冒泡排序算法, 测试数据集:6 3 5 7 0 4