一、冒泡排序的思想:
1. 首先这些简单排序(包括:冒泡排序、选择排序和插入排序)针对的数据结构是数组。
2. 冒泡排序的整个思想是:
从左到右,依次对相邻的两个元素比较大小,将较大的元素移动到右侧(这里的移动其实是将较小的元素放入中间临时变量temp,将较大的移动到右侧,然后将较小的放回到左侧。当然,如果原本右边的值就大,就不需要交换位置。),当第一轮比较完后,最后一个元素即为数组中最大的元素。
接下来,进行第二轮的循环,此时就不需要对整个数组进行遍历了,只需要遍历到倒数第二个元素,因为最后一个已经排好序了。依次类推,直到将所有的元素排好序。
二、冒泡排序Java语言描述:
package com.solid.array;
public class BubbleSort {
//数组对象
private long[] arr;
//数组元素个数
private static int nElems;
/**
* 构造方法
* @param max
*/
public BubbleSort(int max) {
arr = new long[max];
nElems = 0;
}
/**
* 插入元素
* @param value
*/
public void insert(long value) {
arr[nElems] = value;
nElems++;
}
/**
* 冒泡排序算法
*/
public void bubbleSort() {
for(int i=nElems-1; i>0; i--) {
for(int j=0; j<i; j++) {
if(arr[j] > arr[j+1]) {
long temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
}
/**
* 显示数组中的所有元素
*/
public void display() {
for(int i=0; i<nElems; i++) {
System.out.print("arr["+i+"]=" + arr[i] + " ");
}
System.out.println();
}
}