冒泡排序是简单排序方式中的一种,其排序思想为:第一个数和第二个数进行比较,如果第一个数大于第二个数,则交换位置,否则位置不变。以新的数据位置继续比较第二个数和第三个的大小,以此类推,则最终最大的数会排在最后一位,此时为升序排序;反之为降序排序。
/** 冒泡升序排序 **/ public static int[] ascSort(int[] param) { int in, out; int temp = 0; for (out = param.length; out > 0; out--) { for (in = 0; in < out - 1; in++) { if (param[in] > param[in + 1]) { temp = param[in]; param[in] = param[in + 1]; param[in + 1] = temp; } } } return param; }
/** 冒泡降序排序 **/ public static int[] descSort(int[] param) { int in, out; int temp = 0; for (out = 0; out < param.length; out++) { for (in = param.length - 1; in > out; in--) { if (param[in] > param[in - 1]) { temp = param[in]; param[in] = param[in - 1]; param[in - 1] = temp; } } } return param; }
执行升序和降序方法: public static void main(String[] args) { int[] param = { 1, 6, 7, 5 }; param = ascSort(param); System.out.print("升序结果为:"); for (int i = 0; i < param.length; i++) { System.out.print(param[i]); } System.out.println(""); param = descSort(param); System.out.print("降序结果为:"); for (int i = 0; i < param.length; i++) { System.out.print(param[i]); } }
运行结果如下:
注意:
1、冒泡排序的效率为O(N*N),比较次数最多为N(N-1)/2,交换次数最多为N(N-1)/2,其中N代表需要比较的数的个数;
2、冒泡排序是一种以时间换空间的排序方法,最坏的情况是把顺序的排列变成倒序,把倒序的排列变成顺序,此时每次比较运算都要进行交换;
3、冒泡排序的效率和时间复杂度有关的,时间复杂度越大,则执行的效率就越低;
4、在冒泡算法中,若算法中语句执行次数为一个常数,则时间复杂度为O(1);
5、在时间频度不相同的情况下,时间复杂度有可能是相同的,如T(n)=n*n+2n+3与T(n)=n*n+5n+10时间频度不相同,则时间复杂度都是O(n*n)
相关推荐
使用java实现冒泡排序 1.对int数组进行排序,sortAsc 升序,sortDesc降序 2.创建main函数,声明一个int数组,随机写入一些数字 3.sortAsc进行升序排列 4.使用双重for循环进行排序,当第一个数字大于第二个数字, 则...
以下是一个简单的Java冒泡排序实现: ```java public class BubbleSort { public static void sort(int[] array, boolean ascending) { if (array == null || array.length ) { throw new ...
设计一个负责排序的程序包,实现多种排序算法,至少包括插入排序、冒泡排序和快速排序算法。 要求: 1.可以对任何简单类型和任意对象进行排序 2.可以支持升序、降序、字典排序等多种顺序要求 3.可以随意增加排序算法...
在Java中实现冒泡排序,我们可以创建一个名为`bubbleSort`的方法,接受一个整数数组作为参数。这个方法的主要逻辑包括两部分:外层循环控制遍历数组的次数,内层循环则是进行相邻元素的比较和交换。以下是冒泡排序的...
这个简单的Java冒泡排序程序对于理解排序算法的基本工作原理非常有用,同时也可以作为一个基础模板,根据实际需求进行扩展,比如支持降序排序、优化冒泡排序(如添加标志位判断是否已经完成排序等)。 在学习算法的...
### Java冒泡排序详解 在计算机科学中,排序算法是数据结构与算法课程中的核心内容之一,用于将一列数据按照特定的顺序进行排列。冒泡排序(Bubble Sort)是一种简单直观的比较排序算法,其基本思想是重复地遍历要...
设计一个负责排序的程序包,实现多种排序算法,至少包括插入排序、冒泡排序和快速排序算法。 要求: 1.可以对任何简单类型和任意对象进行排序 2.可以支持升序、降序、字典排序等多种顺序要求 3.可以随意增加排序算法...
本文件主要介绍了几种常用的Java排序算法(直接插入排序、冒泡排序、选择排序),并通过示例代码展示了这些算法的基本实现。不同的排序算法有各自的优缺点,适用于不同场景下的数据处理。对于开发者而言,理解这些...
例如,对于序列{76,18,99,35,12},冒泡排序会通过多轮比较和交换,最终将序列调整为有序状态,如{12,18,35,76,99}。 冒泡排序的具体步骤如下: 1. 比较相邻的两个元素,如果前者大于后者,则交换它们的位置...
给定的代码片段展示了如何使用 Java 实现这种简化的冒泡排序算法。其中包含以下几个关键部分: - **主函数 main()**:定义了一个整型数组 `arr` 并调用了 `paiXu1()` 和 `paiXu2()` 函数分别进行升序和降序排序,...
冒泡排序是一种基础且经典的排序算法,主要用于对一组数值进行升序或降序排列。它的基本思想是通过不断地比较相邻元素并交换位置,使较大的(或较小的)元素逐渐“冒”到序列的尾部,直到整个序列有序。在本案例中,...
根据给定的部分内容,我们可以看到有两个不同的冒泡排序方法实现:`bubbleSort1` 和 `bubbleSort2`。 ##### 方法一:`bubbleSort1` `bubbleSort1` 实现的是升序排序,即从小到大排列。 ```java public static int...
Java排序算法实现主要涉及到两种经典的算法:冒泡排序和选择排序。这两种算法都是基于比较的排序方法,适用于小规模或教学目的的数据排序。 **冒泡排序(Bubble Sort)** 是一种简单直观的排序算法,其核心思想是...
冒泡排序是一种基础但经典的排序算法,主要用于对一组数据进行升序或降序排列。它的基本思想是通过不断地比较相邻元素并交换位置,使较大的(或较小的)元素逐渐“冒”到数组的一端,从而实现整个序列的有序化。 在...
"排序(java 面试编程).zip"这个压缩包中包含了一个名为"Sortor.java"的源代码文件和一个"题目.txt"的文本文件,用于实现对输入的数字进行升序或降序排序的功能。下面将详细解释相关知识点。 1. **排序算法**:排序...
在Java中,冒泡排序的实现可以分为两种情况:升序和降序。以下是升序冒泡排序的Java代码示例: ```java public class BubbleSort { public static void bubbleSort(int[] arr) { int n = arr.length; for (int i...
冒泡排序是一种基础且经典的排序算法,主要用于对一组数据进行升序或降序排列。它得名于排序过程中较小的元素像气泡一样逐渐“浮”到数组的顶部。在WindPro2.0-main这个软件或插件中,提供了一个冒泡排序的演示示例...
例如,`bubbleSort()`函数展示了冒泡排序的具体实现,根据参数`sortType`决定升序还是降序排列。 总的来说,理解并掌握各种排序算法可以帮助我们更好地处理数据,提高程序的效率。在实际开发中,根据具体场景选择...
冒泡排序的原理和实现 冒泡排序是一种基本的排序算法,它的原理是通过重复地比较相邻的元素,如果第一个元素比第二个元素大,就交换他们两个。这种算法的名字来源于它的工作方式,即越大的元素会经由交换慢慢“浮”...
本文档主要介绍了Java中常见的五种排序算法:插入排序、交换排序(冒泡排序和快速排序)、选择排序(直接选择排序)、归并排序以及基数排序,并提供了Java代码实现。根据不同的数据规模和特性,我们可以选择合适的...