全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2988
推到 Plurk!
推到 Facebook!

排序

尚未結案
hbl1123
一般會員


發表:2
回覆:5
積分:1
註冊:2005-07-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-26 11:45:31 IP:219.86.xxx.xxx 未訂閱
對不起,我是上次問排序的,雖然有得到答案,不過,不是我想要的,如果要照我的語意去做的話,應該怎麼做呢? 我有兩個btn(一個產生陣列、一個排序)、一個listbox(顯示陣列的所有數值,以及排序好的數值),假如我需要二個陣列(例如a和b陣列),a陣列是產生亂數用的,而b陣列則是儲存a陣列中已排序好的數值(由大到小) 註:在a陣列中,先找出最大值(xMax),然後此最大值放在b陣列中,在把a陣列的最大值*(-1)[這樣下次尋找後,就不會出現重覆],再從a陣列找出除了xMax以外的最大值,再放入b陣列,以此類推~最後,b陣列就可以在listbox上顯示排序好的陣列。 感謝你們抽空為我解答~
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-26 12:37:48 IP:203.69.xxx.xxx 未訂閱
你自己都把你的解法說出來了, 為何老是要別人幫你寫程式, 臉皮超厚哦!
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-26 13:48:22 IP:222.248.xxx.xxx 未訂閱
建議您看一下排序演算法(冒泡法、插入排序、合併排序、快速排序).
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
anderslee
初階會員


發表:2
回覆:32
積分:26
註冊:2002-06-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-26 15:18:15 IP:202.64.xxx.xxx 未訂閱
引言: 對不起,我是上次問排序的,雖然有得到答案,不過,不是我想要的,如果要照我的語意去做的話,應該怎麼做呢? 我有兩個btn(一個產生陣列、一個排序)、一個listbox(顯示陣列的所有數值,以及排序好的數值),假如我需要二個陣列(例如a和b陣列),a陣列是產生亂數用的,而b陣列則是儲存a陣列中已排序好的數值(由大到小) 註:在a陣列中,先找出最大值(xMax),然後此最大值放在b陣列中,在把a陣列的最大值*(-1)[這樣下次尋找後,就不會出現重覆],再從a陣列找出除了xMax以外的最大值,再放入b陣列,以此類推~最後,b陣列就可以在listbox上顯示排序好的陣列。 感謝你們抽空為我解答~
<<你自己都把你的解法說出來了, 為何老是要別人幫你寫程式, 臉皮超厚哦!>> 說得好!! 己把問題想清楚了,不像是新手的毫無頭緒... 真的是! <<建議您看一下排序演算法(冒泡法、插入排序、合併排序、快速排序).>> 我想也不必了.... 既然最後是要放在 listbox, 也就是 TstringList. 不如簡單的把 TstringList 設定為 sorted := true; Duplicates 就 ignor 把 A 陣列的亂數加入 tstringlist 再 assign 到 listbox 就完成了
hbl1123
一般會員


發表:2
回覆:5
積分:1
註冊:2005-07-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-28 09:38:01 IP:219.86.xxx.xxx 未訂閱
謝謝各位以上的解答。 不過,第一位朋友,什麼叫臉皮厚,我就是不會寫程式才會上來求救的,如果我真的會寫,我在這PO文章的時間,早就把我的問題解決了。你不幫忙就算了,何必冷言冷語。我承認我比較笨,所以連個排序的程式都寫不出來,這樣行了吧 其它成員對不起,在這筆戰
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-28 10:52:50 IP:203.69.xxx.xxx 未訂閱
"我就是不會寫程式才會上來求救的,如果我真的會寫,我在這PO文章的時間,早就把我的問題解決了" 所以基本上你只是想找人代工, 哪請問你把我們當作什麼東西? 你的私人祕書嗎? 就該好心幫你寫程式嗎? 真是....厚臉皮..... 先跟大家說抱歉哦!
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-28 11:19:07 IP:220.130.xxx.xxx 未訂閱
 
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;    type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  public
    A: array of Integer;
    procedure MyQuickSort(var arry: array of Integer; 
      L, R: Integer;  Direction: Integer);
  end;    var
  Form1: TForm1;    implementation    //產生亂數
procedure TForm1.Button1Click(Sender: TObject);
var
  I, Len: Integer;
begin
  Len := Random(100)   100;//Len最少100
  SetLength(A, Len);
  for I := 0 to Length(A)-1 do
    A[I] := Random(MaxInt);
end;    procedure TForm1.Button2Click(Sender: TObject);
var
  I: Integer;
  B: array of Integer;
begin
  ListBox1.Clear;
  if Length(A) > 0 then
  begin
    SetLength(B, Length(A));
    try
      //Array B 從 Array A 複製一份資料 
      Move(Pointer(A)^, Pointer(B)^, Length(A) * SizeOf(Integer));
      //排序  1: Ascending; -1: Descending
      MyQuickSort(B, 0, Length(B)-1, -1); 
      for I := 0 to Length(B)-1 do
        ListBox1.Items.Add(IntToStr(B[I]));
    finally
      B := nil;
    end;
  end;
end;    procedure TForm1.MyQuickSort(var arry: array of Integer;
        L, R: Integer; Direction: Integer);
var
  I, J: Integer;
  P, T: Integer;
begin
  //改自class.pas中的QuickSort
  repeat
    I := L;
    J := R;
    P := arry[(L   R) shr 1];
    repeat
      while Direction*(arry[I]-P) < 0 do Inc(I);
      while Direction*(arry[J]-P) > 0 do Dec(J);
      if I <= J then
      begin
        T := arry[I];
        arry[I] := arry[J];
        arry[J] := T;
        Inc(I);
        Dec(J);
      end;
    until I > J;
    if L < J then
      MyQuickSort(arry, L, J, Direction);
    L := I;
  until I >= R;
end;    end.    
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-07-28 11:39:08 IP:203.69.xxx.xxx 未訂閱
jow 大大 好氣度, 也好功力, 受教了. 我以後碰上這種情況就會當作沒看到.....
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-07-28 21:05:07 IP:222.248.xxx.xxx 未訂閱
希望malanlk不要破壞了這個論壇的氣氛,你的發言多帶人身攻擊性!
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-07-28 21:38:07 IP:210.68.xxx.xxx 未訂閱
1. 我發給 jow 大大的是真心的話. 2. 如果我看到 hbl1123 再以這種方式取得他想要的東西, 我選擇沉默這也是真心話.    我想我攻擊的應該就是 hbl1123 , 因為我很早就看穿他的意圖.    至於 對 alanyuan 我第一篇確實是有挑釁, 我更希望引導他做正確發問 http://delphi.ktop.com.tw/link.asp?TOPIC_ID=75781 而這一篇也說明我的引導是有效果的 不過為了尊重這個網壇, 我會修正我的發言尺度. 謝謝 h@visli 大大 指教.
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-07-29 10:15:06 IP:222.248.xxx.xxx 未訂閱
難得malanlk有如此豁達的氣量,幸哉幸哉! 願我們大家都能在Delphi K.Top里不斷提高自己的水平!
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
hbl1123
一般會員


發表:2
回覆:5
積分:1
註冊:2005-07-21

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-07-29 11:31:35 IP:219.80.xxx.xxx 未訂閱
for malanlk: 感謝你的用心良苦,但是你會語氣就一定要那樣嗎?雖然說你不是故意挑釁,可是你知道別人的感受嗎?或許我的社會經驗不夠多,所以會為了這點小事而生氣。但是,你也快年過半百了,難道,你不知道與人說話的禮貌嗎?雖然,你是想讓我有自已思考的機會,但是,請你在用詞方面要改進。不管是現在或未來,如果不改掉語氣,一定還會出現像我這種類似情形~我話說到這,在此又形成筆戰,我深抱歉。不過,還是再次感謝各位大大
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-07-29 11:49:04 IP:203.69.xxx.xxx 未訂閱
‧‧‧‧‧‧‧‧‧‧‧ ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ ‧‧‧‧‧ 居然不是 jow 大大得分 發表人 - malanlk 於 2005/07/29 12:59:29
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-07-31 20:22:30 IP:61.64.xxx.xxx 未訂閱
引言: for malanlk: 感謝你的用心良苦,但是你會語氣就一定要那樣嗎?雖然說你不是故意挑釁,可是你知道別人的感受嗎?或許我的社會經驗不夠多,所以會為了這點小事而生氣。但是,你也快年過半百了,難道,你不知道與人說話的禮貌嗎?雖然,你是想讓我有自已思考的機會,但是,請你在用詞方面要改進。不管是現在或未來,如果不改掉語氣,一定還會出現像我這種類似情形~我話說到這,在此又形成筆戰,我深抱歉。不過,還是再次感謝各位大大
我並必不覺得 malanlk 說話有人身攻擊,也不過是說的一句「臉皮厚」,同時哪也是事實 要寫程式,就要自己先學好基本功,要問問題,就必需先弄清楚自己要做什麼 連自己都不清楚要做什麼,別人如何回答? 連基本功都不會,怎配成為程式人,對程式人是一種侮辱 原作者對問題敘述相當清楚,也夠簡潔,這是它的優點,但是 這樣轉成程式,會很難?不要跟我說你連宣告陣列都不會,那這樣是怎樣?來亂的?根據它的需求與清處的演算規則,只要資料結構與變數宣告一下,再將演算步驟轉成程式碼,就結束了 連這樣都做不到的人,可以建議他轉行,不要用「新手」來搪塞,因為這樣的人只有兩種 1.懶人,要別人幫他 Key in,這就叫臉皮厚,這樣稱呼算溫和的了 2.不適合從事程式寫作,連基本的將演算法轉成程式碼的能力都沒有,那還是轉行吧,坊間基本書籍那麼多,連學習都不願意嗎?不要說看不懂,有高中程度 IQ 就看得懂得書一堆 這種人就是要罵,而你出來幫他們說話,你以為是在幫他們? 事實上,你是在害他們,害他們不能反省,不能進步,永遠需要別人代寫,程度永遠那麼差,這種已經算是解答完成的問題,也可以當成問題來問 最後,你不要跳出來說話(不要出來害他們),就不會有口水戰 發表人 - syntax 於 2005/07/31 20:24:07
系統時間:2024-04-27 0:11:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!