評價: 0 回應: 2 閱覽: 704
置頂

c++將字串排序

如題
我想要將字串排序
例如有3個字串
分別存在一個字串陣列中
string word[3];

word[0]="Hello";
word[1]="World";
word[2]="Bye";
要怎麼把他的字首依照字典順序排序呢
變成這樣
word[0]="Bye";
word[1]="Hello";
word[2]="World";

求各位大大給個意見或提示
謝謝!

熱門回應

1. 將string 字首取出char 就可以做數字大小的判斷.

2. 用一個string List做插入排序

3. 排序完 轉換成 陣列輸出

void verydumbsort(string ar[], int len) {
  string arbuf[26][SIZE];
  int arb_i[26] = { 0 };

  for (int j=0; j<len; ++j) {
    char initial = ar[j][0];
    if (initial >= 'a') {
      initial -= ('a' - 'A');
    }
    initial -= 65;
    arbuf[initial][arb_i[initial]] = ar[j];
    ++arb_i[initial];
  }

  int ar_index = 0;
  for (int m=0; m<26; ++m) {
    for (int n=0; n<arb_i[m]; ++n) {
      if (arbuf[m][n].length() > 0) {
        ar[ar_index] = arbuf[m][n];
        ++ar_index;
      }
    }
  }
}

你是說「字首」照字典順序排嘛

那字首以下就隨便了

 

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言