1樓:匿名使用者
1.分段
2.使用快取或者建立索引加快查詢速度
3.寫一段程式查詢相同的座標,如果兩條線段某點xy座標都相同,相交,否則不相交。
4抄jshmsch的就行了。
2樓:
一點拙見,歡迎大牛補充並拍磚
1.a檢查sql語句,看能否優化
b在經常檢查,全表掃描的欄位上加索引
c觀察資料庫本身效能是否存在瓶頸
2.把這些反覆查詢的先查詢出來,
用的時候直接調就行了
3.a先把兩條線段所在直接全部表示為ax+by+c=0的形式對於a或b為0要注意到
b判斷a2b1-a1b2是否為0如為0,需要觀察a1c2-a2c1是否為0
需要具體討論
c如果b中第一個條件不為0,
只需要解出交點的x或y值,並用線段兩個端點的x或y區間值比較即可為0在b中就可討論完畢
如何討論感覺像在做初中或高中一元二次方程的解,不是在做程式,
嘿嘿4。把這麼多數拉到一個陣列中,
執行一個時間複雜度為o(n*lgn)的排序演算法就行了,但不一定保證最後分出的兩個子陣列能滿意題目的結果或者可以用一個容量為n的最大或最小堆,
這樣能在空間複雜度上有所提高,
時間上好像提高不了多少
3樓:
1.sql語句長:這是用儲存過程!肯定比去查詢資料庫快的多!
2、反覆查詢時為表建立索引或者檢視,查詢時減輕遍歷表的負擔!
非資料庫:
3、就是判斷下一個線段上的點是不是可以再另一個線段上是吧:
一個線段需要2個點比如線段ab,a(x1,y1),b(x2,y2);線段cd,c(x3,y3),d(x4,y4);
根據斜率判斷了::如果不平行就一定相交了。哈哈。
4、排序,這時就需要考慮排序法的優劣了。資料結構學的不咋樣,我記得氣泡排序不錯滴!
4樓:
1、可考慮用分段程式進行。
2、可採用迴圈語句進行反覆執行。
3、能確定沒有交點。
4、用2n/2-1確定中間數,前面的為a組,後面的為b組。
5樓:
(基本同意qiwt 的前兩點,第三點lz說的是線段,不平行也不一定相交;第四點,只是分成兩份,其實並不要求每一份是排好序的,如果全體排序反而會降低效率)
1.用儲存過程
2.快取、索引、檢視、優化表結構
3.假設線段ab,a(x1,y1),b(x2,y2);線段cd,c(x3,y3),d(x4,y4);
1。判斷兩斜率 相等則不相交
2。若斜率不等 則判斷線段的點是否都是在另一條線段所在直線的異側,是則相交,否則不相交。 那麼,要先求兩條直線方程y=a*x+b;y=c*x+d代入兩點求得a,b,c,d;
這個不用我求吧,然後把方程寫成m=y-a*x-b,n=y-c*x-d的格式,之後分別把一條線段的兩個點代入另一條線段的方程,相乘,等於負數則為異側,正數則為同側。
綜上所述即滿足:
(y3-a*x3-b)*(y4-a*x4-b)>=0&&(y1-c*x1-d)*(y2-c*x2-d)>=0
4.這個不能排序,排序的話複雜度肯定增加,我用的方法是一種逼近的方法,其實就跟數學裡求線段跟x軸交點的方法差不多:每次求中點,看中點是否在x軸上,如果不是則取其中跟x軸有交點的線段繼續求中點,直到中點在x軸上為止(當然不一定這麼巧,通常只是讓中點跟x軸的距離小到某一很小的值就可以了)
1。取兩個陣列,先求集合的平均值,然後遍歷集合,大於平均值的存入一個陣列,小於平均值的存入另一個陣列,
2。然後比較兩個陣列中存入的數的個數,重複第一步將個數比較多的陣列分成兩份,把其中的一份併入另一個陣列(原則是大的併到大的裡,小的併到小的裡)
3。重複第二步,直到兩個陣列裡數的個數相等
請大家做幾道英語題,請大家幫忙做幾道題。英語
汗.還幾道?暈死了.我飄了.1.it took metwo weeks toread thebook.2.are they going toswim inthe river?3.she went tosanya byplane yesterday.4.what isshe going todo at...
幫忙做幾道英語題,謝謝啦
憑海而居 1.b not knowing 2.d 都表示 是否 的意思,這裡應該都可以用 不確定 3.d第一個語法不是被動,第二個week地用法不對,第三個多了it4.c 這裡要表示的是 以便 的意思 5.cit s time 後面用動詞原型 6.b 得到了滿分,所以 肯定 很努力地學習了7.b 也...
有幾道棘手的數學題,望有網友解答OO謝謝小學)
第一題 解 設九尾鳥為x只,那麼九頭鳥就是 288 x 9 只加它們的尾數 9x 288 x 9 432 得出x 45 只 288 x 9 288 45 9 27 只 答 九尾鳥為45只,九頭鳥有27 只。第二題 1立方厘米 1毫升 圓柱體的容積等於圓柱體的體積 底面積 高 所以底面積 500 20...