设计了两种不同算法求最短路程,如何改进以下函数,求出算法中的最优解?

 public static ArrayList<City> improveRoutine(ArrayList<City> routine) {

// Can you improve this simple algorithm a bit?
    swapFirstImprove(routine);

    moveFirstImprove(routine);
    return routine;
}

https://blog.csdn.net/cc1949/article/details/78973560