public class BubbleRevised {
/**@author liuwei
* @param args
*/
public static void bubbleSort(int[] list){
boolean needNextPass = true;
for(int k=1;k < list.length && needNextPass; k++){
needNextPass = false;
for(int i=0;i < list.length - k; i++){
if(list[i] > list[i+1]){
int temp = list[i];
list[i] = list[i+1];
list[i+1] = temp;
needNextPass = true;
}
}
}
}
public static void main(String[] args) {
int[] list = {2,3,2,5,6,1,-2,3,14,12};
bubbleSort(list);
for(int i=0;i<list.length;i++){
System.out.print(list[i]+" ");
}
}
}
分享到:
相关推荐
冒泡排序是一种基础的排序算法,...总结,冒泡排序虽然在效率上不敌其他高级排序算法,但其改进方法展示了优化算法思路的重要性。理解并掌握冒泡排序及其改进,有助于我们更好地理解和运用各种排序算法,提高编程能力。
- 这是最原始的冒泡排序算法,它通过不断地比较相邻元素并交换位置来完成排序。 - 每一轮遍历,最大的元素会被移动到正确的位置,即序列的末尾。 - 时间复杂度为O(n^2),其中n是序列的长度。 - 空间复杂度为O(1)...
这个压缩包包含了一个针对冒泡排序算法的改进版本,采用了双向移动法。 双向移动法的冒泡排序是在传统冒泡排序的基础上进行优化,它减少了不必要的交换次数,提高了效率。传统的冒泡排序从数组的第一个元素开始,...
排序是算法的最基本入门,冒泡排序是最简单的一个算法,但是经典的算法却存在累赘冒泡,设置标志变量,可以提高算法效率
这个改进版的冒泡排序算法在很多情况下能够节省时间,特别是在处理部分有序的数组时,效率提升尤为明显。然而,对于大规模数据的排序,冒泡排序仍然不是最佳选择,因为其平均和最好的时间复杂度仍然是O(n^2)。在实际...
这里我们主要探讨的是五种不同的排序算法:插入排序、选择排序、快速排序、希尔排序以及冒泡排序,它们都有对应的链表实现。让我们逐一深入理解这些算法。 1. 插入排序(Insertion Sort) 插入排序是一种简单直观...
本话题主要探讨六种内部排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序以及堆排序。这六种排序算法各有优劣,适用于不同的场景,接下来我们将逐一进行详细阐述。 1. **直接插入排序**: 直接...
冒泡排序、插入排序和选择排序是三种基本的排序算法,它们在计算机科学中占有重要地位,尤其是在数据结构和算法的学习中。本文将详细介绍C语言实现的冒泡Shell排序算法。 首先,冒泡排序(Bubble Sort)是一种简单...
根据给定的文件信息,我们将深入探讨几种经典的排序算法,包括选择排序、冒泡排序、交换排序、希尔排序、插入排序以及基数排序。这些算法在计算机科学领域内有着广泛的应用,各自具有独特的特点和适用场景。 ### 1....
本文详细介绍了C语言排序算法之冒泡排序实现方法,包括基本冒泡排序算法和改进的冒泡排序算法。通过对比分析,改进的冒泡排序算法可以减少不必要的比较和交换操作,提高排序效率。希望本文对大家C语言程序设计有所...
本主题将详细探讨希尔排序、冒泡排序、堆排序等经典的排序算法,这些都是数据结构与算法学习中的核心内容,尤其对于北邮数据结构课程来说,理解并掌握这些排序方法至关重要。 1. **插入排序**: 插入排序是一种...
希尔排序是插入排序的改进版,它通过比较相距一定间隔的元素来工作,间隔序列称为“增量序列”。希尔排序首先将待排序的元素按增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词...
以下是对冒泡排序算法的详细解释: 1. **初始化**:首先,我们有一个包含n个元素的列表,我们需要进行n-1轮比较。因为每次比较后,最大的元素都会被“冒”到数列的最后。 2. **外层循环**:第一层循环从第一个元素...
在这个标题为“冒泡排序改进的算法 很容易看懂 初学者编的”的资源中,我们可以预期看到一种针对传统冒泡排序算法的优化版本,旨在提高其效率,更适合初学者学习。 传统的冒泡排序算法的工作原理是这样的:遍历数组...
这里我们关注的是六种经典的排序算法:快速排序、选择排序、冒泡排序、希尔排序、插入排序以及懒人排序。这六种算法都是使用C语言实现的,因此对C编程有一定的基础要求。 1. **快速排序**:由英国计算机科学家C.A.R...
在给定的资源中,"冒泡排序源代码下载"提供了冒泡排序算法的实现,这可能是用C#或Visual Basic等编程语言编写的,因为文件名包含“视窗版”,暗示这是一个用于Windows平台的程序。`.sln`文件是Visual Studio解决方案...
在这个“易语言源码冒泡改进算法易语言源码.rar”压缩包中,包含的是一个使用易语言实现的冒泡排序算法的改进版本。冒泡排序是一种基础的排序算法,它的基本思想是通过重复遍历待排序的序列,比较相邻元素并交换位置...