优化js脚本并找到最佳解决方案

时间:2013-04-20 11:58:58

标签: javascript algorithm sorting

我需要以任何方式优化此脚本,可能您可以找到更好的算法进行此排序。这个脚本得到的点像“奥斯陆 - 东京,莫斯科 - 柏林,罗马 - Barselona,Barselona - 奥斯陆,东京 - 莫斯科,柏林 - 纽约”并对其进行排序。你可以在这个页面http://at-no.ru/sorting.html看到它 - 首先是部门的地方,第二个是到达地点,第三个和四个没关系。第一个按钮是“添加卡”,第二个按钮是“排序卡”。你可以用英语填写。旅行无法在起点完成 - 在这种情况下,剧本将循环并冻结。

function sortCards(arr) {   // card's sorting

        var map = {};   // create map
        for (var i=0; i<arr.length; i++) {
            map[arr[i].from] = arr[i];  // fill map for each card

         }  

        for (var from in map) {     
            map[from].next = map[map[from].to];  // create linked list

         }

        for (var from in map) {
            for (var next = map[from]; next; next = next.next) {
                delete map[next.to]; // find start point

             }

            var start = from; // put from to var start
         }


        var arr = [];
        for (var point = map[start]; point; point = point.next) {

            arr.push(point);    // fill array

         }


        for (var i=0; i<arr.length; i++) {

        var result = document.createElement("div");
        document.getElementById('entered').appendChild(result).innerHTML='<center>' + 'Get ' + arr[i].transport 
 + ' from ' + arr[i].from + ' to ' + arr[i].to + '. Place ' + arr[i].seat + '<br>' + '</center>';   // display the result

            }

        }

0 个答案:

没有答案