最近面试时常遇到写冒泡算法的情况,看来很多公司都很重视考察排序问题,闲来无事自己写了一个,记录在这里。本程序中加入了flag标志减少了不必要的循环次数。
package test;
public class BubbleSortTest {
//测试main方法
public static void main(String[] args){
int[] arr = {1,2,4,5,7,3,8,9,6,0};
BubbleSort(arr);
}
private static void BubbleSort(int a []){
int temp = 0; //临时变量
int num = 0;//记录总共冒泡次数
for (int i = 0; i < a.length ; i++) {
boolean flag = true;
for (int j = 0; j < a.length - i - 1; j++){
if (a[j]<a[j + 1]){ //把这里改成大于,就是升序了
temp=a[j];
a[j]=a[j + 1];
a[j + 1]=temp;
flag = false;
}
}
System.out.print("第"+(i+1)+"次冒泡后,当前顺序为:");
for(int k=0;k<a.length;k++){
System.out.print(a[k]);
}
System.out.println();
num = i;
//flag为true标志当前冒泡次数已经将顺序排好,跳出循环
if(flag){
break;
}
}
System.out.println("总共冒泡次数为:"+(num+1));
}
}
运行结果如下:
第1次冒泡后,当前顺序为:2457389610
第2次冒泡后,当前顺序为:4573896210
第3次冒泡后,当前顺序为:5748963210
第4次冒泡后,当前顺序为:7589643210
第5次冒泡后,当前顺序为:7896543210
第6次冒泡后,当前顺序为:8976543210
第7次冒泡后,当前顺序为:9876543210
第8次冒泡后,当前顺序为:9876543210
总共冒泡次数为:8
分享到:
相关推荐
设计一个双向冒泡排序算法。要求用C/C++实现。
冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python...
数据结构冒泡排序算法 数据结构冒泡排序算法
### 冒泡排序算法的动态演示程序:深入解析与实现 #### 一、冒泡排序算法简介 冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。...
### Java冒泡排序算法知识点详解 #### 一、冒泡排序基本概念 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是...
**插入排序与冒泡排序算法详解** 在计算机科学中,排序是数据处理的重要部分,它涉及到将一组数据按照特定顺序排列。插入排序和冒泡排序是两种基础且经典的排序算法,它们都属于简单排序方法,适合小规模或者部分...
冒泡排序算法的C++函数模板 冒泡排序算法是简单的排序算法之一,它的主要思想是通过反复比较相邻元素,将小的元素逐步移到序列的开始位置,而大的元素逐步移到序列的末尾位置,以达到排序的目的。下面是冒泡排序...
冒泡排序算法,包含前向冒泡、后向冒泡以及双向冒泡
该 ppt 为课程讲义,讲解冒泡排序算法原理,及用一个简单实例进行具体分析,还有冒泡排序算法原理的总结等。
冒泡排序算法两种C语言实现方法,在VC开发环境下验证通过
冒泡排序是一种简单的排序算法,它的基本思想是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这...
介绍了C语言冒泡排序算法的原理、步骤、实现方法和优化技巧,以及相关的概念和知识,如数组、循环、交换、比较、稳定性、时间复杂度等。本资源适合C语言初学者和考生使用,帮助他们深入理解和掌握冒泡排序算法的原理...
在易语言中实现冒泡排序算法,我们可以按照以下步骤进行: 1. **初始化**:首先,我们需要一个数组来存储待排序的数据。易语言中定义数组可以通过`数组定义`语句,例如`整数数组 数组名 = [元素个数]`。 2. **外层...
冒泡排序算法是一种基础的排序算法,通过重复遍历要排序的数列,比较相邻的两个数,如果前一个比后一个大,则将它们两个对调。每一轮遍历结束后,数列中的最大值就会“冒泡”到数列的末尾。简单来说,就是通过重复...
冒泡排序是一种基础的排序算法,它通过重复遍历待排序的序列,比较相邻元素并交换位置,使得每个元素都能逐步“浮”到正确的位置上。在这个过程中,最大(或最小)的元素会像气泡一样逐渐上升到序列的顶端。这种算法...
### 关于C++冒泡排序算法的深度解析 在计算机科学与编程领域,排序算法是基础且关键的一部分,其中冒泡排序(Bubble Sort)作为最简单直观的排序算法之一,常被用作教学示例,尤其适合初学者理解排序算法的基本原理...
冒泡排序是一种简单的排序算法,它的基本思想是通过重复遍历待排序的数组,比较相邻元素并交换位置(如果需要的话),直到数组中的所有元素都按照指定顺序排列。冒泡排序的名字来源于排序过程中较小的元素像气泡一样...
### Java中的两种冒泡排序算法 #### 知识点一:基本冒泡排序算法 冒泡排序是一种简单的排序算法,其基本思想是通过不断地比较相邻元素的大小,并根据需要进行交换,来达到排序的目的。 **代码实现:** ```java ...