Быстрая сортировка в методе, принимающем массив как параметр - C#
Формулировка задачи:
Привет! Ребята, помогите плз. Напишите быструю сортировку, только так, чтобы
процедура принимала только массив и все!!!
QuickSort (int[] mass) { // ????? }
Решение задачи: «Быстрая сортировка в методе, принимающем массив как параметр»
textual
Листинг программы
void swap(int[] arr, int i0, int i1) { int c = arr[i1]; arr[i1] = arr[i0]; arr[i0] = c; } void Quick(int[] arr) { int @base, left, right, i, j; @base = left = right = i = j = 0; Stack<int> stack = new Stack<int>(); stack.Push(arr.Length - 1); stack.Push(0); do { left = stack.Pop(); right = stack.Pop(); if ((right - left) == 1 && arr[left] > arr[right]) { swap(arr, left, right); } else { @base = arr[(left + right) / 2]; i = left; j = right; do { while(@base > arr[i]) ++i; while(arr[j] > @base) --j; if (i <= j) { swap(arr, i++, j--); } } while (i <= j); } if (left < j) { stack.Push(j); stack.Push(left); } if (i < right) { stack.Push(right); stack.Push(i); } } while(stack.Count != 0); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д