<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    weidagang2046的專欄

    物格而后知致
    隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
    數據加載中……

    問個昨天的MSN面試題

    [回復本文] 發信人: pyrope(pyrope), 信區: Algorithm
    標  題: 問個昨天的MSN面試題,求教
    發信站: 飲水思源 (2005年11月07日16:57:43 星期一)
    
    有一個N*N的矩陣, 里面有N*N個數,這個矩陣的每一行,每一列都是排序好的,下面是一
    個例子
    1   3  7   9
    2   5  13  14
    6   7  25  26
    20  24 30  40
    現在設計一個算法,在這個矩陣中search一個數,要求盡可能快
    我覺的會有lgN的算法,但是想不出來:(
    
    --
    
    ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 59.78.35.215]
    

    [回復本文] 發信人: keee(keee), 信區: Algorithm
    標  題: Re: 問個昨天的MSN面試題,求教
    發信站: 飲水思源 (2005年11月07日19:27:50 星期一)
    
    二分不就行了
    【 在 pyrope 的大作中提到: 】
    : 有一個N*N的矩陣, 里面有N*N個數,這個矩陣的每一行,每一列都是排序好的,下?.
    : 個例子
    : 1   3  7   9
    : 2   5  13  14
    : 6   7  25  26
    : 20  24 30  40
    : 現在設計一個算法,在這個矩陣中search一個數,要求盡可能快
    : 我覺的會有lgN的算法,但是想不出來:(
    
    --
    
    ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 59.78.46.141]
    

    [回復本文] 發信人: pyrope(pyrope), 信區: Algorithm
    標  題: Re: 問個昨天的MSN面試題,求教
    發信站: 飲水思源 (2005年11月07日20:14:35 星期一)
    
    不懂怎么二分。。。能具體點么?
    【 在 keee 的大作中提到: 】
    : 二分不就行了
    : 【 在 pyrope 的大作中提到: 】
    : : 有一個N*N的矩陣, 里面有N*N個數,這個矩陣的每一行,每一列都是排序好的,?.
    : : 個例子
    : : 1   3  7   9
    : : 2   5  13  14
    : : 6   7  25  26
    : : 20  24 30  40
    : : 現在設計一個算法,在這個矩陣中search一個數,要求盡可能快
    : : 我覺的會有lgN的算法,但是想不出來:(
    
    --
    
    ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 59.78.35.215]
    

    [回復本文] 發信人: keee(keee), 信區: Algorithm
    標  題: Re: 問個昨天的MSN面試題,求教
    發信站: 飲水思源 (2005年11月07日22:01:30 星期一)
    
    設矩陣從(a,b)到(c,d)
    取矩陣中間位置的點(x,y)與要找的數k做比較,分三種情況:相等即找到;比k小就到(a,
    b)到(x,y)中找;比k大就到((x+1, b)-(c, y)), ((a, y+1)-(x, d)), ((x+1, y+1)-(c,d
    ))三塊矩陣中找。
    隨便想的,歡迎拍磚
    【 在 pyrope 的大作中提到: 】
    : 不懂怎么二分。。。能具體點么?
    : 【 在 keee 的大作中提到: 】
    : : 二分不就行了
    
    --
    
    ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 59.78.46.141]
    

    [回復本文] 發信人: pyrope(pyrope), 信區: Algorithm
    標  題: Re: 問個昨天的MSN面試題,求教
    發信站: 飲水思源 (2005年11月08日10:04:03 星期二)
    
    1   3  7   9
    2   5  13  14
    6   7  25  26
    20  24 30  40
    比k小就到(a,: b)到(x,y)中找;
    這個就不對,比如我找24,然后先選到25,但是24 < 25,卻不在你說的那個矩陣里
    【 在 keee 的大作中提到: 】
    : 設矩陣從(a,b)到(c,d)
    : 取矩陣中間位置的點(x,y)與要找的數k做比較,分三種情況:相等即找到;比k小就?.
    : b)到(x,y)中找;比k大就到((x+1, b)-(c, y)), ((a, y+1)-(x, d)), ((x+1, y+1)-..
    : ))三塊矩陣中找。
    : 隨便想的,歡迎拍磚
    : 【 在 pyrope 的大作中提到: 】
    : : 不懂怎么二分。。。能具體點么?
    
    --
    
    ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 59.78.35.215]
    

    [回復本文] 發信人: SYSADMIN(此人已死,有事燒紙--掛站中), 信區: Algorithm
    標  題: Re: 問個昨天的MSN面試題,求教
    發信站: 飲水思源 (2005年11月08日10:05:52 星期二), 轉信
    
    2分法,
    
    【 在 pyrope (pyrope) 的大作中提到: 】
    : 有一個N*N的矩陣, 里面有N*N個數,這個矩陣的每一行,每一列都是排序好的,下面是一
    : 個例子
    : 1   3  7   9
    : 2   5  13  14
    : 6   7  25  26
    : 20  24 30  40
    : 現在設計一個算法,在這個矩陣中search一個數,要求盡可能快
    : 我覺的會有lgN的算法,但是想不出來:(
    --
    
    ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 202.120.61.133]
    

    [回復本文] 發信人: keee(keee), 信區: Algorithm
    標  題: Re: 問個昨天的MSN面試題,求教
    發信站: 飲水思源 (2005年11月08日12:37:40 星期二), 轉信
    
    疏忽了。。。。
    那就再多找兩個矩陣好了,無所謂的
    反正每次都能去掉1/4的元素,階是log(n*n)的
    
    【 在 pyrope (pyrope) 的大作中提到: 】
    : 1   3  7   9
    : 2   5  13  14
    : 6   7  25  26
    : 20  24 30  40
    : 比k小就到(a,: b)到(x,y)中找;
    : 這個就不對,比如我找24,然后先選到25,但是24 < 25,卻不在你說的那個矩陣里
    : 【 在 keee 的大作中提到: 】
    : : 設矩陣從(a,b)到(c,d)
    : : 取矩陣中間位置的點(x,y)與要找的數k做比較,分三種情況:相等即找到;比k小就?.
    : : b)到(x,y)中找;比k大就到((x+1, b)-(c, y)), ((a, y+1)-(x, d)), ((x+1, y+1)-..
    : .................(以下省略)
    --
    
    ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 59.78.46.141]
    

    [回復本文] 發信人: Comars(New season comes), 信區: Algorithm
    標  題: Re: 問個昨天的MSN面試題,求教
    發信站: 飲水思源 (2005年11月08日12:44:25 星期二), 轉信
    
    按照
    T(n) = 3T(n/2) 計算,階是 O(n^(log3)) 大概是 O(n^1.58)
    不是 log(n*n)
    
    【 在 keee (keee) 的大作中提到: 】
    : 疏忽了。。。。
    : 那就再多找兩個矩陣好了,無所謂的
    : 反正每次都能去掉1/4的元素,階是log(n*n)的
    : 【 在 pyrope (pyrope) 的大作中提到: 】
    : : 1   3  7   9
    : : 2   5  13  14
    : : 6   7  25  26
    : : 20  24 30  40
    : : 比k小就到(a,: b)到(x,y)中找;
    : : 這個就不對,比如我找24,然后先選到25,但是24 < 25,卻不在你說的那個矩陣里
    : .................(以下省略)
    
    --
      從前有座山
      山上有個廟
      廟里有倆和尚……
    
    
    ※ 修改:·Comars 于 11月08日12:44:37 修改本文·[FROM: 202.120.61.1]
    ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 202.120.61.1]
    

    [回復本文] 發信人: keee(keee), 信區: Algorithm
    標  題: Re: 問個昨天的MSN面試題,求教
    發信站: 飲水思源 (2005年11月08日12:56:51 星期二), 轉信
    
    汗。。。
    胡說八道被抓了。。
    【 在 Comars (New season comes) 的大作中提到: 】
    : 按照
    : T(n) = 3T(n/2) 計算,階是 O(n^(log3)) 大概是 O(n^1.58)
    : 不是 log(n*n)
    : 【 在 keee (keee) 的大作中提到: 】
    : : 疏忽了。。。。
    : : 那就再多找兩個矩陣好了,無所謂的
    : : 反正每次都能去掉1/4的元素,階是log(n*n)的
    : : .................(以下省略)
    --
    
    ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 59.78.46.141]
    

    [回復本文] 發信人: keee(keee), 信區: Algorithm
    標  題: Re: 問個昨天的MSN面試題,求教
    發信站: 飲水思源 (2005年11月08日12:58:29 星期二), 轉信
    
    有更好的算法嗎
    【 在 keee (keee) 的大作中提到: 】
    : 汗。。。
    : 胡說八道被抓了。。
    : 【 在 Comars (New season comes) 的大作中提到: 】
    : : 按照
    : : T(n) = 3T(n/2) 計算,階是 O(n^(log3)) 大概是 O(n^1.58)
    : : 不是 log(n*n)
    --
    
    ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 59.78.46.141]
    

    [回復本文] 發信人: pyrope(pyrope), 信區: Algorithm
    標  題: Re: 問個昨天的MSN面試題,求教
    發信站: 飲水思源 (2005年11月08日13:50:57 星期二)
    
    按你那樣的算法的話,是多項式復雜度,還不如直接找是nlgn,
    那個HR說好像是有lgn復雜度的算法的,我覺的也應該是有的
    【 在 keee 的大作中提到: 】
    : 有更好的算法嗎
    : 【 在 keee (keee) 的大作中提到: 】
    : : 汗。。。
    : : 胡說八道被抓了。。
    
    --
    
    ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 59.78.35.215]
    

    [回復本文] 發信人: paradisor(paradisor), 信區: Algorithm
    標  題: Re: 問個昨天的MSN面試題,求教
    發信站: 飲水思源 (2005年11月08日15:55:47 星期二)
    
    hehe
    【 在 keee 的大作中提到: 】
    : 汗。。。
    : 胡說八道被抓了。。
    : 【 在 Comars (New season comes) 的大作中提到: 】
    : : 按照
    : : T(n) = 3T(n/2) 計算,階是 O(n^(log3)) 大概是 O(n^1.58)
    : : 不是 log(n*n)
    
    --
    羽箭雕弓,憶呼鷹古壘,截虎平川。 吹笳暮歸野帳,雪壓青氈。
    淋漓醉墨,看龍蛇飛落蠻箋。 人誤許,詩情將略,一時才氣超然。
    
    何事又作南來,看重陽藥市,元夕燈山。 花時萬人樂處,攲帽垂鞭。
    聞歌感舊,尚時時流涕尊前。 君記取:封侯事在,功名不信由天。
    
    
    ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 59.78.46.143]
    

    [回復本文] 發信人: kerrigan(用戶昵稱), 信區: Algorithm
    標  題: Re: 問個昨天的MSN面試題,求教
    發信站: 飲水思源 (2005年11月08日16:56:35 星期二)
    
    我可以提供一個log(n)+log(n-1)+..+log(1) = log(n!)的算法
    舉例來說,假設要找8
    現在第一行中2分查找(logn),確定位置在7,9之間
    7左上的元素小于7,9右上的元素大于9,刪除這些元素
    那么可以確定8在
    2   5  13 
    6   7  25  
    20  24 30  
    即T(n)=T(n-1)+logn -> T(n)=log(n!)
    【 在 pyrope 的大作中提到: 】
    : 有一個N*N的矩陣, 里面有N*N個數,這個矩陣的每一行,每一列都是排序好的,下?.
    : 個例子
    : 1   3  7   9
    : 2   5  13  14
    : 6   7  25  26
    : 20  24 30  40
    : 現在設計一個算法,在這個矩陣中search一個數,要求盡可能快
    : 我覺的會有lgN的算法,但是想不出來:(
    

    posted on 2005-11-08 22:08 weidagang2046 閱讀(693) 評論(2)  編輯  收藏 所屬分類: Others

    評論

    # re: 問個昨天的MSN面試題  回復  更多評論   

    a[n][n]為矩陣,查找x

    for(i=0,j=n-1;i<n && j>=0 && a[i][j]!=x;i+=a[i][j]<x,j-=a[i][j]>x);
    2005-11-11 23:12 | weidagang2046

    # re: 問個昨天的MSN面試題  回復  更多評論   

    樓上正解。牛人。時間復雜度O(n)。空間復雜度O(1)。缺點:代碼不宜讀,沒有考慮找不到的情況。@weidagang2046

    2011-09-09 17:23 | liang
    主站蜘蛛池模板: 亚洲综合一区二区国产精品| 亚洲国产精品自在在线观看| 亚洲精品视频免费| 国产亚洲综合成人91精品| 99精品免费观看| 亚洲精品国产综合久久久久紧| 免费在线观看理论片| 无码精品国产一区二区三区免费| 亚洲综合欧美色五月俺也去| 久久精品国产亚洲精品| 黄在线观看www免费看| 一级毛片**免费看试看20分钟 | 成年女人免费v片| 国产精品永久免费视频| 亚洲中文字幕久久精品无码2021| 免费一级毛片女人图片| 8x成人永久免费视频| 特级毛片免费观看视频| 亚洲大片免费观看| 亚洲一级片内射网站在线观看| 亚洲免费在线视频观看| av午夜福利一片免费看久久| 亚洲宅男精品一区在线观看| 狠狠亚洲狠狠欧洲2019| 午夜免费福利影院| 91免费在线播放| av午夜福利一片免费看久久| 亚洲国产精品无码久久98| 久久久亚洲裙底偷窥综合| 亚洲视频一区二区| 免费观看一级毛片| 亚洲毛片免费观看| 国产午夜无码精品免费看| 日韩毛片在线免费观看| 亚洲人成网站在线播放2019| 亚洲精品动漫在线| 亚洲AV综合色区无码另类小说| 免费成人午夜视频| 午夜网站免费版在线观看| 18女人毛片水真多免费| 很黄很污的网站免费|