作者DennisTang ()
看板C_and_CPP
標題[問題] 想請問較佳的程式寫法
時間Fri Mar 27 12:55:53 2009
有一個長度為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
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.28.103
1F:→ bleed1979:存成陣列 array[now_index - L] > L 03/27 14:54
2F:推 ledia:early cut, 在 creat_interleaver 時有錯就要重來 03/27 15:02
3F:→ ledia:每放好一個值都要檢查新放的值會不會造成前面的數條件不成立 03/27 15:03
4F:→ DennisTang:嗯嗯 我產生的寫法就是樓上講得那樣 只是不知道有沒有 03/27 16:07
5F:→ DennisTang:比較快產生這種陣列的方式 03/27 16:07
6F:→ DennisTang:我會錯ledia的意思了 我是先產生再檢查條件再換值 03/27 16:19
7F:→ DennisTang:感謝ledia給的建議 謝謝 :) 03/27 21:28