Re: [問題] 想請問較佳的程式寫法

看板C_and_CPP (C/C++)作者 (十三)時間16年前 (2009/03/27 15:13), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
如果排序不曉得有沒比較快 LENG = 10, L = 2 value 0 4 9 2 5 8 1 6 3 7 index 0 1 2 3 4 5 6 7 8 9 sort過後 value 0 1 2 3 4 5 6 7 8 9 index 0 6 3 8 1 4 7 9 5 2 for(i = 0; i + L < LENG; ++i) { for(j = i + 1; j < i + L; ++j) { if(abs(index[i] - index[j]) < L) { printf("%d %d\n", array[i], array[j]); } } } 照這題來說是沒有輸出的 不過這方法只須對右手邊小於L的數, 但多了排序時間, 和多存一個index陣列 這是我想的, 不確定對, 請找測資run run看 Bleed ※ 引述《DennisTang ()》之銘言: : 有一個長度為LENG的一維不重複整數亂數陣列 : 其中整數亂數的值佈於0~LENG-1 : 我希望陣列中的某一元素與其index距離小於L的元素 其內容的絕對值的差都要大於L : 舉例如下: : LENG = 10, L = 2 : 0 4 9 2 5 8 1 6 3 7 : 與0距離小於L的值:4 abs(0-4)>2 : 與4距離小於L的值:0 9 abs(4-0)>2 abs(4-9)>2 : 與9距離小於L的值:4 2 abs(9-4)>2 abs(9-2)>2 : 與2距離小於L的值:9 5 abs(2-9)>2 abs(2-5)>2 : ...... : 依此類推 : 我完成的程式在下面(包含檢查程式) 但是我是用硬湊的方法來寫的 : 所以當LENG很長的時候會非常的慢 : 我想請問這種問題有沒有什麼技巧呢? : http://rafb.net/p/Vcfor716.html -- World of bleed1979 http://bleed1979.myweb.hinet.net/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.141.226

03/27 16:08, , 1F
嗯嗯 這樣測試的確快很多
03/27 16:08, 1F
※ 編輯: bleed1979 來自: 118.168.141.226 (03/27 16:22)
文章代碼(AID): #19p7on8W (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19p7on8W (C_and_CPP)