數據結構排序之插入排序

package com.jlz.java;

import java.util.ArrayList;
import java.util.ListIterator;
/**
 * 
 * @author Jlzlight
 * <strong><span style="font-size:18px;">算法思想:默認前面是已經排好序的元素,將後面的元素一次插入到前面的序列</span></strong>
 */
public class Insert_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);
		// 選擇排序函數
		Insert(arrayList);
	}

	private static void Insert(ArrayList<Object> arrayList) {
		// TODO Auto-generated method stub
		// 假設第一個已經有序了
		for (int i = 1; i < arrayList.size(); i++) {
			Object object = arrayList.get(i);
			// 插入到已經排序好的元素裏
			for (int j = i-1; j >= 0; j--) {
				if((Integer)object<(Integer)arrayList.get(j)){
					arrayList.set(j+1, arrayList.get(j));
					arrayList.set(j, 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
 【55 60】48 90 36
 【48 55 60】 90 36
 【48 55 60 90】36
 【36 48 55 60 90】
發佈了39 篇原創文章 · 獲贊 16 · 訪問量 9275
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章