4 回答

TA貢獻1825條經(jīng)驗 獲得超4個贊
1、原始表:
t_bill;字段:索引ID(number),分鐘值talktime(varchar(40));
2、遞歸累加生成表:
t_bill_2 ;字段:索引ID(number),分鐘值talktime(varchar(40));
遞歸累加生成表 talktime建立索引
兩個表的id一樣;
3、可以考慮根據(jù)遞歸累加生成表的talktime分表; 比如1--1000的在1表,依次類推;
4、根據(jù)根據(jù)Y值查分表編號,然后查

TA貢獻1802條經(jīng)驗 獲得超6個贊
兩個數(shù)比較比加運算要省時間,盡量減少加的運算次數(shù),已知Y的值,那么也就是說必須一個一個計算累加到Y(jié)附近,這個運算至少要進行一次,則1和2的方法比3要快,最好是從大到小排序,這么的話盡量少的加運算就可以累加到Y(jié)值。

TA貢獻1829條經(jīng)驗 獲得超6個贊
假設(shè)有一組值(大于等于0的數(shù)),總量級別:百萬以上,需要求出總和在某個值(Y)的位置。實際情況中Y的值一般也是上萬的
1.
(1000000個數(shù)的和) / 1000000 = 一百萬的數(shù)的平均值
2.
Y / 一百萬的數(shù)的平均值=等于大約需要累加多少數(shù),然后以這個位置開始判斷
3
相差值不大的話就慢慢比較,比較大的話,就從這個位置開始,按步驟1,繼續(xù)

TA貢獻1799條經(jīng)驗 獲得超8個贊
1.(1000000個數(shù)的和) / Y = 以這個數(shù)為步長
2 每次按這些這個步長 把數(shù)加起來和Y比較
相差不大就一個個慢慢比較 相差大的話 跳轉(zhuǎn)到1 ,按1方法比較。
這個問題的任何方法都只能是O(N)
但是我說的方法二能比較快的接近。
jinnianshilongnian
第三方用到數(shù)據(jù)庫.....,這個。。。呵呵
添加回答
舉報