Вот с # один вкладыш:
int[] x = { 1,4,5,2,3,6,7 };
Array.Sort(x, (a, b) => a % 2 == 0 ? b % 2 == 0 ? a.CompareTo(b) : 1 : b % 2 == 0 ? -1 : -1 * a.CompareTo(b));
Не превращайте его к своему учителю. Ваш учитель хочет, чтобы вы сами реализовали алгоритм сортировки, поэтому он знает, что вы можете это сделать, и знает, что вы понимаете, что связано с этим.
На практике вы почти никогда не будете делать это на работе. У вашей платформы уже есть высоко оптимизированные методы сортировки, и вы хотите использовать их, будь то C# Array.Sort()
или .OrderBy()
или алгоритм C++ stl. Этот код должен был показать вам, как вы могли бы решить эту проблему в реальном мире, хотя, если бы я хотел, чтобы это прошло проверку кода, я бы не смог сжать все это на одной строке.
Звучит как домашнее задание? – Donnie
Так что ты спрашиваешь? Как его оптимизировать? Люди обычно ценят какую-то попытку, прежде чем они захотят помочь вам. (т. е. размещать некоторый код, и люди будут рады помочь вам его оптимизировать) – Adam
«Вопрос интервью Microsoft» http://geeksforgeeks.org/forum/topic/microsoft-interview-question-for-software-engineerdeveloper-about-arrays – WhirlWind