2013-02-05 148 views
-4

有100個塊的數組,這裏每個塊都包含一種顏色,並且這種顏色隨機地來自字符a,b,c,...,z的數組。對字符數組進行排序

例: A B d例如I H˚Fd一個

現在你必須編寫一個程序,將返回排序後的數組具有下列條件。

  1. 請按照下面的交換順序。

字符最大交換

B 2

的C 3

......

Ž26

輸出: a a b d d e f h g i

我已經使用了以下方法。

//返回塊號

int getNoOfBlocks();

//返回特定塊的字母表

char getData(int);

//交換值

空隙swapBlock(INT,INT);

空隙arrangeBlocks(無效)

{

INT大小= getNoOfBlocks();

for(int i = 0 ; i < size; i++) 

    { 

     int min = getData(i)-97; 

     int pos = 0; 

     int ascii = 0; 

     for(int j = i + 1; j < size; j++) 

      { 

       ascii = getData(j)-97; 

       if(min > ascii) 

        { 

         min = ascii; 

         pos = j; 

        } 

      } 

     swapBlock(i, pos+1); 

    } 

}

+2

去做你你自己的作業... – thumbmunkeys

+0

這個問題是基於最大交換,這是不同於其他類型的排序機制。 – BITSSANDESH

+1

是和?你想要有人爲你寫程序嗎?你可以問一個具體的問題,然後你可能會得到一個答案 – thumbmunkeys

回答

1

您交換了錯誤的元素,它應該是:

swapBlock(i, pos); 

而且你的第一個循環是錯誤的,它應該是:

for(int i = 0 ; i < size - 1; i++)