• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            JonsenElizee

            Software Developing Blog

            "An idea is fragile . It can be killed by a scornful smile or a yawn .It can be mound down by irony and scared to death by a cold look."
            "Most cultures throughout human history have not liked creative individuals .They ignore them or kill them.It is a very efficient way of stopping creativity."

            ------Advertising boss Charles Browe and Howard Gardner ,professor at Harvard

               :: 首頁 :: 新隨筆 ::  ::  :: 管理 ::
            ISSUE: 輸入上百萬個(gè)行星的位置, 求距離第K近的兩個(gè)行星。


            Precondition:
                
            1. star field simulation graph is planar.
                
            2. the coordinate of star is (x, y) that is treated as a point。
                
            3. N = 1000000

            1. bucket-sort all points according to x-coordinate. get B buckets.
               
            this is will completed in O(NlogN).
               
               
            struct bucket {
                
            int num;       // number of points in this bucket.
                point* points; // points in this bucket.
                double x;      // value of x-coordinate.
               }
               
               bck[B]; 
            // B buckets got.

            2
               
            struct distance {
                point p1;
                point p2;
                
            double d;     // distance between p1 and p2.
               }

               distance kdis[K]; 
            // to record K small distance. and it's a eliminating-tree.
               kdis[0 to K-1= 0;

               
            for(i = [0, B-2]) // O(B)
               {
                
            // check bck[i] and bck[i+1]
                if(bck[i+1].x - bck[i].x >= kdis[K-1].d && kdis[K-1!= 0)
                {
                    
            // there is no need to check these two buckets.
                    i++;
                    
            continue// save time.
                }

                point
            * poi = bck[i].points;
                
            for(j = [0, bck.num-1]) // O(N/B)
                {
                    point p 
            = poi[j];
                    
            /*
                    find K points in bck[i+1] near to p
                    with binary searching method 
                    according to p.y.
                    
            */
                    kp[K]; 
            // K points got in bck[i+1]

                    
            for(m = [0, K-1]) // O(K)
                    {
                        distance tmp 
            = get_distance(kp[m], p);
                        
            if(tmp.d < kdis[K-1].d)
                        {
                            kdis[K
            -1= tmp;
                            
            // adjust kdis[K-1], for it's a eliminating tree.
                        }
                    }
                }
               }

               
            // finally, the kdis[K-1] is the kth distance in this star graph.
               
            // the whole processing will be completed in O(NlogN) + O(B*N/B*K).
               
            // and SC is O(N) + O(K) = O(N).

            HOW TO FIND K POINTS
            ?
                
            /*
                find K points in bck[i+1] near to p
                with binary searching method 
                according to p.y.
                
            */
            it
            's not complecated! and could be found in O(log(N/B)).


            posted on 2010-10-27 15:18 JonsenElizee 閱讀(1562) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Data Structures & Algorithms
            By JonsenElizee
            色偷偷久久一区二区三区| 777米奇久久最新地址| 国产成人精品综合久久久| 亚洲中文字幕无码久久综合网| 青青草原精品99久久精品66| 欧美激情精品久久久久| 日韩精品无码久久一区二区三| 久久亚洲精品中文字幕| 久久99热这里只有精品国产| 久久综合综合久久综合| 99久久99久久精品国产片| 无码日韩人妻精品久久蜜桃| 国产毛片久久久久久国产毛片| 亚洲精品午夜国产VA久久成人 | 久久99热这里只频精品6| 久久精品99久久香蕉国产色戒 | 伊人久久综在合线亚洲2019| 国产成人精品综合久久久久| 久久久99精品成人片中文字幕| 久久人爽人人爽人人片AV| 亚洲欧美日韩久久精品| 国产国产成人久久精品| av无码久久久久不卡免费网站| 日韩久久无码免费毛片软件| 国产精品久久久天天影视香蕉| 日韩精品久久久久久久电影蜜臀| 中文字幕久久精品| 久久夜色撩人精品国产| 久久亚洲精品无码观看不卡| 国产午夜福利精品久久| 伊人久久综在合线亚洲2019 | 国产精品久久网| 99久久精品国产高清一区二区 | 久久久久国产一区二区| 99久久国产综合精品网成人影院| 久久久久人妻精品一区二区三区| 国产精品无码久久综合| 久久99精品久久久久子伦| 国产精品美女久久久久| 精品久久久久久国产潘金莲| 国产欧美久久一区二区|