Re: [問題] 想請問較佳的程式寫法
如果排序不曉得有沒比較快
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)
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章