2015-02-23 78 views
0

我有以下數據,需要使用選擇排序進行排序。我們有itemName,類別,數量和價格作爲實例變量。如何做選擇排序

「Blouse」 「W」 21 17.95 
「Blouse」 「C」 35 17.95 
「Shirt」 「M」 13 21.95 
「Pants」 「W」 22 67.95 
「Pants」 「M」 22 62.95 
「Pants」 「C」 26 21.95 
「Coat」 「C」 20 21.95 
「Coat」 「M」 10 62.95 

這是我的選擇排序代碼,但是我的輸出結果並不正確。當它應該以升序顯示時,按降序顯示。我該怎麼辦?是我的方法或下面的代碼比較我的問題?

int min; 
Comparable temp; 
for(int index = 0; index< list.length-1; index++) 
{ 
    min=index; 
    for(int scan= index+1; scan<list.length; scan++) 
    { 
     if(list[min].compareTo(list[scan])<0) 
      min = scan; 
     temp= list[min]; 
     list[min] = list[index]; 
     list[index]= temp; 
+0

聽起來像家庭工作的問題。首先嚐試[Google搜索](http://en.wikipedia.org/wiki/Selection_sort)。 – Naveed 2015-02-23 22:36:11

回答

0

假設你寫你這樣的代碼(您發佈的方式不排序在所有):

int min; 
    Comparable temp; 
    for(int index = 0; index< list.length-1; index++) 
    { 
     min=index; 
     for(int scan= index+1; scan<list.length; scan++) 
     { 
      if(list[min].compareTo(list[scan])<0) 
       min = scan; 
     } 

     temp= list[index]; 
     list[index] = list[min]; 
     list[min]= temp;    
    } 

所有你需要改變的是這一行if(list[min].compareTo(list[scan])<0)

對此if(list[min].compareTo(list[scan])>0)

更改爲>操作數將按照ascending的順序對您的列表進行排序。