`

4.排序:改进的冒泡排序法

J# 
阅读更多

对int[] sorts = { 20, 9, 4, 7, 2, 6, 8, 1 };进行排序

 

package com.tao.test;

/**
 * 冒泡排序法
 * 
 */
public class TestBubbleSort {
	public static void main(String[] args) {
		int[] sorts = { 20, 9, 4, 7, 2, 6, 8, 1 };
		TestBubbleSort tbs = new TestBubbleSort();
		tbs.bubbleSort(sorts);
	}

	/**
	 * 改进的冒泡排序法
	 * 原理:如果一趟排序中,没有发生数据元素交换,则表示已经完成排序。
	 * 
	 * @param sorts
	 */
	public void bubbleSort(int[] sorts) {
		output(sorts);
		int n = sorts.length;
		boolean flag = false;
		for (int i = 0; i < n; i++) {

			for (int j = 1; j < n - i; j++) {
				if (sorts[j - 1] > sorts[j]) {
					int temp = sorts[j];
					sorts[j] = sorts[j - 1];
					sorts[j - 1] = temp;
					flag = true;
				}
			}
			if (!flag) {
				return;
			}
			flag = false;
			output(sorts);
		}
	}

	/**
	 * 用于输出信息
	 * 
	 * @param sorts
	 */
	public void output(int[] sorts) {
		for (int i = 0; i < sorts.length; i++) {
			System.out.print(",  " + sorts[i]);
		}
		System.out.println();
	}
}

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    冒泡排序法改进前后的比较_冒泡排序法改进前后的比较_

    在"冒泡排序法改进前后的比较.docx"文件中,可能详细列举了不同情况下基本冒泡排序与改进冒泡排序的运行时间、比较次数和交换次数。通过对具体数据的对比,我们可以直观地看到改进后的冒泡排序在大多数情况下都有更...

    C语言冒泡排序法的简单程序.pdf

    本文主要介绍了C语言冒泡排序法的简单程序,包括冒泡排序的算法分析、改进和实现。冒泡排序是一种简单的排序算法,它的基本思想是两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的...

    改进冒泡排序法.asm

    改进冒泡排序法.asm

    选择排序法与冒泡排序法——C语言PPT学习教案.pptx

    改进的冒泡排序法是对冒泡排序法的改进,它的基本思想是通过添加一个判断变量,来判断是否需要继续排序。如果某趟所有相邻的元素都不需要交换,则可以提前结束排序,提高排序效率。 在C语言中,选择排序法和冒泡...

    许士良常用算法程序集C语言

    1. 冒泡排序:基础排序算法,时间复杂度为O(n^2)。 2. 选择排序:每次选取最小(或最大)元素,时间复杂度为O(n^2)。 3. 插入排序:将元素插入已排序部分,时间复杂度为O(n^2)。 4. 快速排序:使用分治策略,平均...

    参考资料-【排序法考核工具】岗位评价中排序法的应用.zip

    本资料"参考资料-【排序法考核工具】岗位评价中排序法的应用.zip"似乎着重于将排序法应用于岗位评价,这可能是为了更系统、公正地对员工绩效或职位价值进行排序。 排序算法有很多种,如冒泡排序、插入排序、选择...

    冒泡排序法的面试简历题目

    冒泡排序法是一种基础但重要的排序算法,常用于面试中测试候选人的编程基础。它的工作原理是通过重复遍历待排序的序列,比较相邻元素并根据需要交换它们的位置,使得每一遍过后的最大(或最小)元素“浮”到序列的...

    JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序

    本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...

    基于比较的排序算法汇总 选择排序法 插入排序法 归并排序法 快速排序法 堆排序法 冒泡排序法 希尔排序法

    本文将深入探讨标题中提到的几种基于比较的排序算法:选择排序、插入排序、归并排序、快速排序、堆排序、冒泡排序以及希尔排序。 1. **选择排序(Selection Sort)**: - 基本思想:在未排序的序列中找到最小(或...

    排序算法: 冒泡排序,桶排序,计数排序,堆排序,插入排序,合并排序,快速排序,基数排序,选择排序,希尔排序 实现语言: Vue

    1. **冒泡排序**:冒泡排序是最简单的排序算法之一,通过不断交换相邻的不正确顺序的元素来逐步理顺整个序列。它的时间复杂度为O(n^2),适用于小规模或部分有序的数据。 2. **桶排序**:桶排序是一种分布式排序算法...

    《数据结构与算法(C语言版)》教学参考模块8.docx

    8.3.1冒泡排序 8.3.2快速排序 8.4选择排序 8.4.1简单项选择排序 8.4.2树形选择排序 8.5堆排序 8.6各种排序方法的比拟 案例实施 案例总结 思考与练习 主要概念: 1. 排序 2. 稳定排序法 3. 非稳定排序法 4. 内部...

    Python算法大全,用 Python 实现的所有算法

    1. 冒泡排序:通过重复遍历数组,比较相邻元素并交换位置,使最大(或最小)元素逐渐"冒"到数组的一端。 2. 插入排序:将未排序元素插入已排序部分,保持有序状态。 3. 选择排序:找到未排序部分的最小(或最大)...

    《数据结构与算法》网上教学系统.zip

    1. 排序算法:冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序等。 2. 搜索算法:线性搜索、二分搜索、深度优先搜索(DFS)、广度优先搜索(BFS)。 3. 动态规划:解决最优化问题,如背包问题、最长公共...

    7种基本排序算法

    7. 双向冒泡排序:双向冒泡排序是对传统冒泡排序的改进,它同时从数列的两端开始,向中间推进,减少了不必要的比较和交换,效率略高于普通冒泡排序。 8. 堆排序:堆排序是一种树形选择排序,利用了完全二叉树的特性...

    算法(排序)

    1. 冒泡排序:通过不断交换相邻的逆序元素来逐步实现排序。 2. 选择排序:每次选择未排序部分的最小(或最大)元素放到已排序部分的末尾。 3. 插入排序:将每个元素插入到已排序部分的正确位置上。 4. 快速排序:...

    快速排序、选择排序、冒泡排序、希尔排序等6种排序算法C实现

    4. **希尔排序**:希尔排序是插入排序的一种更高效的改进版本,由Donald Shell于1959年提出。它通过将待排序的元素按照一定的增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越...

    C常用算法程序集

    1. 冒泡排序:通过不断交换相邻两个元素的位置,使得较大的元素逐渐向后移动,最终达到有序状态。 2. 选择排序:每次找到未排序部分的最小(或最大)元素,放到已排序部分的末尾。 3. 插入排序:将未排序的元素逐个...

    利用双向走动法改进冒泡排序算法C语言源代码 .rar_冒泡排序_大数据排序_小程序_排序算法

    传统的冒泡排序法是这样操作:从前往后,依次比较两个相邻的元素,如果逆序则交换这两个元素值,然后继续往后操作;到了数据尾部时,就找出了一个最大值(或最小值)。然后重复上面的操作n-1次(n为元素个数)。相关...

    冒泡排序法的代码。。

    根据给定的信息,我们可以深入探讨冒泡排序算法的原理、实现方法以及代码分析。 ### 冒泡排序算法原理 冒泡排序(Bubble Sort)...通过以上分析与改进,我们不仅提升了代码的质量,还提高了冒泡排序算法的执行效率。

    第十章_内部排序.zip

    常见的内部排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序、希尔排序、计数排序、桶排序、基数排序等。 1. 冒泡排序:是最简单的排序算法之一,通过相邻元素的交换逐步将较大的元素“冒”到...

Global site tag (gtag.js) - Google Analytics