(四)简单排序—冒泡排序

来源:互联网 发布:centos浏览器中文乱码 编辑:程序博客网 时间:2024/04/28 07:28

一、冒泡排序的思想:

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();

    }

}