Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int[] best;
- double minimum = Integer.MAX_VALUE;
- public void permute(int[] arr, int index, int start) {
- if (index >= arr.length - 1) {
- double current = 0;
- current += getDistance(start, arr[0]);
- for (int i = 0; i < arr.length-1; i++) {
- current += getDistance(arr[i], arr[i+1]);
- if (current > minimum) {
- break;
- }
- }
- current += getDistance(arr[arr.length-1], start);
- if (current < minimum) {
- minimum = current;
- this.best = arr;
- }
- }
- for (int i = index; i < arr.length; i++) {
- int t = arr[index];
- arr[index] = arr[i];
- arr[i] = t;
- permute(arr, index+1, start);
- t = arr[index];
- arr[index] = arr[i];
- arr[i] = t;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement