Сортировка вставками - C# (181730)

Узнай цену своей работы

Формулировка задачи:

Имеется код сортировки вставками:
  int[] result = new int[arraySort.Length];
            for (int i = 0; i < arraySort.Length; i++)
            {
                int j = i;
                while (j > 0 && result[j - 1] > arraySort[i])
                {
                    result[j] = result[j - 1];
                    j--;
                }
                result[j] = arraySort[i];
            }
            return arraySort;
Есть ли возможность как-то ускорить процесс сортировки? Ибо когда массив около 100.000 и больше, сортировка происходит очень медленно.

Решение задачи: «Сортировка вставками»

textual
Листинг программы
        private static unsafe int[] HisSort2(int[] arraySort)
        {
            int[] result = new int[arraySort.Length];
            fixed (int* root = &result[0])
            {
                for (int i = 0; i < arraySort.Length; i++)
                {
                    int j = i;
                    var current = root + j;
                    var e = arraySort[i];
                    while (j > 0 && *(current - 1) > e)
                    {
                        *current-- = *current;
                        j--;
                    }
                    result[j] = arraySort[i];
                }
            }
            return result;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5