数据结构排序之冒泡排序

package com.jlz.java;

import java.util.ArrayList;
import java.util.ListIterator;

/**
 * 
 * @author Jlzlight 
<strong><span style="font-size:18px;color:#ff0000;">冒泡排序算法思想:比较相邻两个元素的大小,若不符合条件交换位置, 在比较下一对,直到最后一对,就可以找到最大(小)的元素
 *         下一趟去掉已经找到的元素,依次比较相邻的元素,重复以上步骤</span></strong>
 */
public class Bubble_Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 初始化列表
		ArrayList<Object> arrayList = new ArrayList<Object>();
		arrayList.add(60);
		arrayList.add(55);
		arrayList.add(48);
		arrayList.add(90);
		arrayList.add(36);
		// 显示列表元素
		Show(arrayList);
		// 选择排序函数
		Bubble(arrayList);
	}

	private static void Bubble(ArrayList<Object> arrayList) {
		// TODO Auto-generated method stub
		// 比较size()-1次,最后一个元素不需要比较
		for (int i = 1; i < arrayList.size(); i++) {
			// 最后一个元素不用与后面的元素比较(其实后面没有了)
			for (int j = 0; j < arrayList.size() - 1; j++) {
				if ((Integer) arrayList.get(j) < (Integer) arrayList.get(j + 1)) {
					// 相邻元素,交换位置
					Object object = arrayList.get(j);
					arrayList.set(j, arrayList.get(j + 1));
					arrayList.set(j + 1, object);
				}
			}
			Show(arrayList);
		}
	}

	// 显示列表元素
	public static void Show(ArrayList<Object> arrayList) {
		// 运用迭代遍历,也可以直接遍历
		ListIterator<Object> listIterator = arrayList.listIterator();
		while (listIterator.hasNext()) {
			System.out.print(" " + listIterator.next());
		}
		// 换行函数
		Println();
	}

	// 换行
	public static void Println() {
		System.out.println();
	}

}

排序结果

 初始数据                60 55 48 90 36 
 第一趟排序结果:60 55 90 48 36
 第二趟排序结果:60 90 55 48 36
 第三趟排序结果:90 60 55 48 36
 第四趟排序结果:90 60 55 48 36

发布了39 篇原创文章 · 获赞 16 · 访问量 9271
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章