選擇排序(java機試題)

Allen-Liu發表於2017-10-07

要求:輸入一個陣列,然後用選擇排序從小到大排序並輸出。

java實現如下:

import java.util.Scanner;
public class SelectSort
{
	/**
	 * 選擇排序
	 */
	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]);
		}
		for (int i = 0; i < list.length; i++)
		{
			System.out.print(list[i] + " ");
		}
		selectSort(list);
		mergeSort(list);
		for (int e : list)
		{
			System.out.print(e + " ");
		}
		

	}
	
	//選擇排序
	public static void selectSort(int[] list)
	{
		int min, index;//用於記錄當前迴圈中最小數值
		for (int i = 0; i < list.length - 1; i++)
		{
			min = list[i];
			index = i;
			for (int k = i + 1; k < list.length; k++)
			{
				if (list[k] < min)
				{
					min = list[k];
					index = k;
				}
			}
			list[index] = list[i];
			list[i] = min;
		}
	}
	
}


相關文章