0

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

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

            }

        }
4

0 回答 0