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

看板C_and_CPP作者時間15年前 (2009/03/27 12:55), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/2 (看更多)
有一個長度為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

03/27 14:54, , 1F
存成陣列 array[now_index - L] > L
03/27 14:54, 1F

03/27 15:02, , 2F
early cut, 在 creat_interleaver 時有錯就要重來
03/27 15:02, 2F

03/27 15:03, , 3F
每放好一個值都要檢查新放的值會不會造成前面的數條件不成立
03/27 15:03, 3F

03/27 16:07, , 4F
嗯嗯 我產生的寫法就是樓上講得那樣 只是不知道有沒有
03/27 16:07, 4F

03/27 16:07, , 5F
比較快產生這種陣列的方式
03/27 16:07, 5F

03/27 16:19, , 6F
我會錯ledia的意思了 我是先產生再檢查條件再換值
03/27 16:19, 6F

03/27 21:28, , 7F
感謝ledia給的建議 謝謝 :)
03/27 21:28, 7F
文章代碼(AID): #19p5nR1u (C_and_CPP)
文章代碼(AID): #19p5nR1u (C_and_CPP)