• <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: 輸入上百萬個行星的位置, 求距離第K近的兩個行星。


            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 閱讀(1554) 評論(0)  編輯 收藏 引用 所屬分類: Data Structures & Algorithms
            By JonsenElizee
            国产精品99久久久久久宅男小说| 国产精品久久久久久影院| 国产午夜精品久久久久九九| 久久最新免费视频| 乱亲女H秽乱长久久久| 国产99久久久国产精品~~牛| 欧美粉嫩小泬久久久久久久| 人妻无码久久一区二区三区免费| 久久亚洲精品视频| 久久婷婷色综合一区二区| 久久九九有精品国产23百花影院| 久久人人爽人人爽人人片AV不| 精品久久久久久中文字幕| 狠狠色丁香久久婷婷综合蜜芽五月 | 久久天天婷婷五月俺也去| 久久青青草原亚洲av无码app| 91精品国产91热久久久久福利| 亚洲中文字幕久久精品无码喷水| 久久综合狠狠综合久久激情 | 伊人色综合久久天天人手人婷| 国产成人精品久久| 2021精品国产综合久久| 久久九九兔免费精品6| 欧美久久一区二区三区| 中文精品久久久久国产网址| 久久精品无码专区免费东京热 | 久久久久无码国产精品不卡| 国产精品美女久久久久久2018| 久久天天躁狠狠躁夜夜avapp| 久久人人超碰精品CAOPOREN| 久久综合综合久久97色| 精品久久久久久无码专区 | 一本色道久久HEZYO无码| 亚洲国产精品狼友中文久久久| 久久精品无码一区二区app| 丁香久久婷婷国产午夜视频| 91精品国产高清久久久久久国产嫩草 | 久久久久人妻一区精品色 | 国产激情久久久久影院老熟女免费 | 久久97久久97精品免视看| 中文精品久久久久国产网址|