插入排序(java機試題)

Allen-Liu發表於2017-10-07

題目要求:輸入一個陣列,要求用插入排序從小到大排序並輸出。

java實現如下:

import java.util.Scanner;
public class BubbleSort
{
	/**
	 * 插入排序
	 */
	public static void main(String[] args)
	{
		Scanner str = new Scanner(System.in);
		String[] strlist = str.nextLine().split(" ");//這裡想獲得字串陣列,從而獲得輸入數值的個數
		int[] list = new int[strlist.length];//因為java中陣列需要在使用前給定大小,大小從字串陣列獲得
		for (int i = 0; i < strlist.length; i++)
		{
			list[i] = Integer.parseInt(strlist[i]);
		}
		insertSort(list);
		for (int e : list)
		{
			System.out.print(e + " ");
		}
		
	}
	
	//插入排序
	public static void insertSort(int[] list)
	{
		for (int i = 1; i < list.length; i++)
		{
			int currentElement = list[i];
			int k;//在外面定義的原因是要在迴圈外使用該變數
			for (k = i - 1; k >= 0 && list[k] > currentElement; k--)
			{
				list[k + 1] = list[k];
			}
			list[k + 1] = currentElement;
		}
	}
		
}


相關文章