package com
/**
* 冒泡排序
*
* @since jdk1.5及其以上
* @author 大海
* @version 1.0
* @date 2010.02.18
*
*/
public class BubbleSort {
/**
* @param args
*/
public static void main(String[] args) {
int maxSize = 100;
BubbleSort bs = new BubbleSort(maxSize);
bs.insert(10);
bs.insert(9);
bs.insert(8);
bs.insert(7);
bs.insert(6);
bs.insert(5);
bs.insert(4);
bs.insert(3);
bs.insert(2);
bs.insert(1);
bs.output(); // 原始输出
bs.bubbleSort(); // 排序
bs.output(); // 排序输出
}
private long[] a; // 整型数据容器
private int nElems; // 元素个数
/**
* 构造方法
*
* @param maxSize
*/
public BubbleSort(int maxSize) {
a = new long[maxSize];
nElems = 0;
}
/**
* 容器放入数据
*
* @param value
*/
public void insert(long value) {
a[nElems++] = value;
}
/**
* 输出容器数据
*/
public void output() {
for (int j = 0; j < nElems; j++) {
System.out.print(a[j] + " ");
}
System.out.println("");
}
/**
* 冒泡排序
*/
public void bubbleSort() {
int out, in;
for (out = nElems - 1; out > 1; out--) {
for (in = 0; in < out; in++) {
if (a[in] > a[in + 1]) {
swap(in, in + 1);
}
}
}
}
/**
* 交换
*
* @param in
* @param i
*/
private void swap(int one, int two) {
long temp = a[one];
a[one] = a[two];
a[two] = temp;
}
}
分享到:
相关推荐
冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的...
冒泡排序是一种简单的排序算法,通过不断交换相邻两个元素的位置来逐步将较大的元素推向数组的后部。它的主要思想是重复遍历数组,每次比较相邻的元素,如果顺序错误就交换。Java实现时,通常会设置一个标志位来...
冒泡排序是一种基础且经典的排序算法,它通过不断交换相邻的逆序元素来逐步将一个序列整理成有序状态。在本篇文章中,我们将探讨如何使用Java语言实现冒泡排序,并结合用户输入的数据进行排序。 首先,我们需要理解...
- 实现冒泡排序的Java代码是一个双层循环结构,外层循环控制排序的轮数,内层循环负责每轮的比较和交换。 6. 冒泡排序的优化 - 优化一:设置一个标志位,如果在某一轮排序中没有发生任何交换,则说明数组已经有序...
本主题将深入探讨四种常见的排序算法:冒泡排序、选择排序、插入排序和快速排序,这些算法在Java中都有相应的实现。下面,我们将详细讲解每种排序算法的工作原理,并给出Java代码实现。 1. 冒泡排序(Bubble Sort)...
在本文中,我们将深入探讨三种基本的排序算法:插入排序、选择排序和冒泡排序。这些算法是计算机科学中基础且重要的部分,特别是在理解数据结构和算法效率方面。以下是对每种排序算法的详细说明: **插入排序...
具体包括冒泡排序、简单选择排序、直接插入排序、希尔排序、归并排序以及快速排序等。每种排序算法都将通过具体的Java代码实现并加以解释,以便更好地理解其工作原理及应用场景。 #### 冒泡排序 冒泡排序是一种...
以下是根据标题和描述中提到的四种排序算法——冒泡排序、快速排序、插入排序和选择排序的详细说明。 **冒泡排序(BuddleSort)**: 冒泡排序是一种简单的交换排序,它通过重复遍历待排序的列表,比较相邻元素并...
冒泡排序是一种简单的排序算法,通过不断交换相邻的逆序元素来逐步排序。其主要步骤包括比较和交换,重复n-1轮,每轮将当前未排序的最大元素“冒泡”到正确的位置。时间复杂度为O(n^2),适用于小规模或近乎有序的...
除了这两种排序算法,还有其他多种排序算法,如冒泡排序、快速排序、归并排序等,它们各有特点,适用于不同的场景。学习和掌握这些排序算法能帮助我们更好地理解和解决实际问题。在实际开发中,我们通常会根据数据...
本资源包"选择排序 冒泡排序 插入排序 快速排序 堆排序.zip"聚焦于五种经典的排序算法,包括选择排序、冒泡排序、插入排序、快速排序以及堆排序。这些算法的实现语言是Objective-C,这是一种强大的面向对象的编程...
本文主要讨论了Java中几种常见的数组排序方法,包括冒泡排序、插入排序、双冒泡排序(优化的冒泡排序)以及快速排序。这些排序方法各有优缺点,适用于不同的场景。 1. **冒泡排序**:冒泡排序是最简单的排序算法之...
1. **冒泡排序**:这是一种简单的交换排序方法,通过不断比较相邻元素并交换位置,使较大的元素逐渐“浮”到数组的一端。时间复杂度为O(n^2)。 2. **选择排序**:选择排序每次找到未排序部分中最小(或最大)的元素...
本篇文章将详细探讨Java中实现插入排序、冒泡排序和选择排序的原理、代码实现及它们的时间和空间复杂度。 首先,我们来看插入排序。插入排序是一种简单直观的排序算法,它的工作原理类似于我们日常整理扑克牌的过程...
除了上述算法,Java中还有其他经典的排序算法,如冒泡排序(Bubble Sort)、选择排序(Selection Sort)、快速排序(Quick Sort)、归并排序(Merge Sort)和堆排序(Heap Sort)。每种排序算法都有其适用场景和优...
本文将深入探讨Java中实现的四种基本排序算法:插入排序、交换排序(包括快速排序和冒泡排序)、选择排序以及归并排序。虽然树形选择排序和堆排序在这次实现中未涵盖,但理解这四种排序算法的基本原理和Java实现方式...
这里我们主要探讨的是冒泡排序、选择排序和插入排序这三种经典算法,它们都是基于比较来实现数组或列表的有序排列。下面我们将详细解释这三种算法的工作原理及其在实际应用中的特点。 **冒泡排序**: 冒泡排序是一...
本资源提供了八种经典的排序算法的Java源代码实现,包括直接插入排序、希尔排序、简单选择排序、堆排序、冒泡排序、快速排序、归并排序和基数排序。下面将对这八大排序算法进行详细介绍。 1. **直接插入排序...
冒泡排序是一种简单的排序算法,通过重复遍历数组,比较相邻元素并交换位置来实现排序。如果前一个元素大于后一个元素,它们的位置就会互换。这个过程会一直重复,直到没有更多的交换,表明数组已经排序完成。冒泡...
在提供的文件中,我们可以看到几个经典的排序算法的Java实现,包括插入排序(Insertion Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)以及希尔排序(Shell Sort)。以下是对这些算法的详细说明: 1...