返回列表 發帖

[回家作業] 選擇排序

  1. package tw.kuas.mis.edu.tw;

  2. public class Main {

  3.         public static void main(String[] args) {
  4.                 // TODO Auto-generated method stub

  5.                 int [] data = {1,3,2,5,4,6};
  6.                 Sort(data);
  7.                
  8.         }
  9.        
  10.         public static void Sort(int data [])
  11.         {
  12.                 int temp;
  13.                 for(int i=0;i<data.length-1;i++)
  14.                 {
  15.                         for(int j=i+1;j<data.length;j++) // 這邊之所以j=i+1 原因是 他分成 已排序和 未排序兩列
  16.                         {
  17.                                 if(data[i]>data[j])
  18.                                 {
  19.                                         temp = data[i];
  20.                                         data[i] = data[j];
  21.                                         data[j] = temp;
  22.                                 }
  23.                         }
  24.                        
  25.                         for(int k=0;k<data.length;k++)
  26.                         {
  27.                                 System.out.print(data[k]+" ");
  28.                         }
  29.                         System.out.println();
  30.                 }
  31.         }

  32. }
複製代碼
主要的核心程式碼依然是 迴圈的那部分  主要是將排序的數列 分成 已排序 未排序兩種
由於題目要求 要將整個排序的過程 如題庫上的圖顯示一樣 所以我們沒辦法額外開一個陣列來作儲存
我們只能將他位置進行更換
如果 不是很理解的 可以看一下這個網站 他有動畫可以看得出來移動的情形
http://notepad.yehyeh.net/Content/Algorithm/Sort/Selection/1.php

返回列表