返回列表 發帖

[回家作業] 選擇排序

  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

  1. public class JPD05 {
  2.     public static void main(String[] argv) {
  3.         int[] data = {1, 3, 2, 5, 4, 6};
  4.         sort(data);
  5.         
  6.     }

  7.         public static void sort(int[] data) {
  8.                 int s;
  9.                 for(int i=0;i<data.length-1;i++)
  10.                 {
  11.                         for(int j=i+1;j<data.length;j++)
  12.                         {
  13.                                 if(data[i]>data[j])
  14.                                 {
  15.                                         s=data[i];
  16.                                         data[i]=data[j];
  17.                                         data[j]=s;
  18.                                 }
  19.                         }
  20.                         for(int k=0;k<data.length;k++)
  21.                         {
  22.                                 System.out.print(data[k]);
  23.                         }
  24.                         System.out.println();

  25.                 }
  26.                
  27.         }
  28.    
  29.    
  30. }
複製代碼

TOP

  1. public class JPA05 {
  2.     public static void main(String[] argv) {
  3.         int[] data = {1, 3, 2, 5, 4, 6};
  4.         
  5.         sort(data);
  6.     }
  7.    
  8.     public static void sort (int data[])
  9.     {
  10.             int temp;
  11.             for(int i=0;i<data.length-1;i++)
  12.             {
  13.                     for(int j=i+1;j<data.length;j++)
  14.                     {
  15.                             if (data[i] > data[j])
  16.                             {
  17.                                     temp = data[i];
  18.                                     data[i] = data[j];
  19.                                     data[j] = temp;
  20.                     }
  21.             }
  22.             for(int n=0 ; n<data.length;n++)
  23.             {
  24.                     System.out.print(data[n] + " ");
  25.             }
  26.             System.out.print("\n");
  27.     }
  28.     }
  29. }
複製代碼

TOP

  1. public class JPA05 {
  2.     public static void main(String[] argv) {
  3.         int[] data = {1, 3, 2, 5, 4, 6};
  4.         
  5.         sort(data);
  6.     }
  7.    
  8.     public static void sort(int data[]){
  9.            
  10.             int temp ;
  11.             for(int i = 0 ; i < data.length-1 ; i++){
  12.                    
  13.                     for(int j = i+1 ; j<data.length ; j++){
  14.                            
  15.                             if(data[i]>data[j]){
  16.                                    
  17.                                     temp=data[i];
  18.                                     data[i]=data[j];
  19.                                     data[j]=temp;
  20.                             }
  21.                            
  22.                     }
  23.                     for(int k = 0 ; k < data.length ; k++){
  24.                        
  25.                         System.out.print(data[k]+"");
  26.                 }
  27.                     System.out.println("");
  28.             }
  29.            
  30.            
  31.     }
  32. }
複製代碼

TOP

  1. public class JPA05 {
  2.     public static void main(String[] argv) {
  3.         int[] data = {1, 3, 2, 5, 4, 6};
  4.         
  5.         sort(data);
  6.     }
  7.     public static void sort(int data[])
  8.     {
  9.             int temp;
  10.             for(int i=0;i<data.length;i++)
  11.             {
  12.                     for(int j=i+1;j<data.length;j++)
  13.                     {
  14.                             if(data[i]>data[j])
  15.                             {
  16.                                     temp=data[i];
  17.                                 data[i]=data[j];
  18.                                 data[j]=temp;
  19.                             }
  20.                     }
  21.                     for(int k=0;k<data.length;k++)
  22.                 {
  23.                         System.out.print(data[k]+" ");
  24.                 }
  25.                 System.out.println();
  26.             }
  27.     }
  28. }
複製代碼

TOP

返回列表