• <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 閱讀(1562) 評論(0)  編輯 收藏 引用 所屬分類: Data Structures & Algorithms
            By JonsenElizee
            91精品国产高清久久久久久91| 久久中文精品无码中文字幕| 国内精品久久久久影院薰衣草| 久久这里都是精品| 丰满少妇人妻久久久久久| 丁香五月综合久久激情| 国产A三级久久精品| 久久99精品久久久久久噜噜| 亚洲乱码日产精品a级毛片久久 | 国内精品久久久久| 久久久精品久久久久影院| 久久精品国产亚洲av麻豆小说 | 久久se精品一区精品二区| 日韩欧美亚洲综合久久影院Ds| 久久精品99久久香蕉国产色戒| 热综合一本伊人久久精品| 国产成人久久AV免费| 少妇无套内谢久久久久| 久久精品国产第一区二区| 97久久综合精品久久久综合| 久久www免费人成看片| 国产精品免费久久久久影院| 久久精品www人人爽人人| 99精品国产免费久久久久久下载| 国产成人精品久久亚洲| 青青草国产精品久久| 国产精品久久久久影院嫩草| 久久国产色AV免费观看| 久久久免费精品re6| 久久久久久九九99精品| 亚洲国产精品成人久久| 97精品伊人久久久大香线蕉| 久久毛片一区二区| 欧美亚洲国产精品久久高清| 大香伊人久久精品一区二区| 亚洲国产成人精品久久久国产成人一区二区三区综 | 99热成人精品热久久669| 国产精品福利一区二区久久| 国产精品久久波多野结衣| 狠狠色丁香婷婷综合久久来| 久久精品9988|