• <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
            国产成人99久久亚洲综合精品| 一本久久知道综合久久| 久久国产精品99精品国产| 亚洲午夜精品久久久久久浪潮| 久久精品中文字幕久久| 亚洲成色999久久网站| 国产精品伦理久久久久久| 久久国产精品免费一区二区三区| 秋霞久久国产精品电影院| 久久精品国产精品亚洲下载| 久久久久久久综合日本| 狠狠色丁香婷婷久久综合五月| 久久久久久国产精品无码下载 | 99精品久久精品| 久久精品中文字幕久久| 久久久久久久国产免费看| 久久人人爽人人爽人人片AV东京热| 久久久久se色偷偷亚洲精品av | 久久无码精品一区二区三区| 欧美精品丝袜久久久中文字幕 | 婷婷久久综合九色综合九七| 亚洲精品国产字幕久久不卡| 久久久精品免费国产四虎| 精品久久久久一区二区三区| 久久久久亚洲av综合波多野结衣| 国内精品久久久久久久97牛牛 | 老司机午夜网站国内精品久久久久久久久 | 中文国产成人精品久久亚洲精品AⅤ无码精品 | 久久国产成人精品国产成人亚洲| 免费精品久久天干天干| 国内精品久久久久影院免费| 久久亚洲国产精品五月天婷| 狼狼综合久久久久综合网| 精品久久久久久久中文字幕| 久久人人爽人人爽人人AV东京热 | 秋霞久久国产精品电影院| 亚洲日本va中文字幕久久| 青青草国产97免久久费观看| 久久国产精品77777| 亚洲精品无码久久毛片| 国产三级精品久久|