Exemple #1
0
        private static int BruteForce(int[] tasks)
        {
            int min = int.MaxValue;

            foreach (int[] permutation in OptimumAssignmentOfTasks.Permutations(tasks, 0))
            {
                int max = int.MinValue;
                for (int i = 0; i < permutation.Length / 2; i++)
                {
                    max = Math.Max(max, permutation[i] + permutation[permutation.Length - i - 1]);
                }

                min = Math.Min(min, max);
            }

            return(min);
        }
Exemple #2
0
        private static IEnumerable <int[]> Permutations(int[] data, int index)
        {
            if (index == data.Length)
            {
                yield return(data);
            }

            for (int i = index; i < data.Length; i++)
            {
                ArrayUtilities.Swap(data, i, index);

                foreach (int[] permutation in OptimumAssignmentOfTasks.Permutations(data, index + 1))
                {
                    yield return(permutation);
                }

                ArrayUtilities.Swap(data, i, index);
            }
        }