2010-06-09 47 views
0

我有問題,從編程珍珠問題abouut字符串排序

問題是以下

展示瞭如何使用Lomuto的分區方案以按時間比例不同長度的比特串其長度的總和

和算法以下

每個記錄在X [0..N-1]具有整數的長度和指針陣位[0..length-1] 代碼

void bsort(l,u,depth) 
{ 
    if (l>=u) return; 

    for (int i=l;i<u;i++) 
    if (x[i].length<depth) 
     swap(i,l++); 

    m=l; 
    if (x[i].bit[depth] == 0) swap(i,m++); 
    bsort(l,m-1,depth+1); 
    bsort(m,u,depth+1); 
} 

我需要以下幾件事:

  1. 這個算法是如何工作的
  2. 如何在Java實現?
+1

我重新格式化了最多的條目,如果你希望人們做出回答的努力,至少在這個問題上付出一些努力。 – 2010-06-09 07:18:55

回答

0

它在Java中本質上幾乎相同。如果您瞭解Java,我認爲這應該不會超過幾分鐘。我相信我們很樂意爲您提供一些關於算法工作原理的指導,但我希望先看看您的一些工作。拿一支鉛筆和一些紙張並追蹤代碼。這將是遞歸的最佳選擇。

+0

是的,但我不明白算法本身 – 2010-06-09 07:28:06

+0

這是功課嗎? – 2010-06-09 07:47:26

+0

我不知道你打電話給我做作業,我正在研究自己 – 2010-06-09 08:05:21