Professional Documents
Culture Documents
Quick sort и Heap sort
Quick sort и Heap sort
Въведение
Алгоритми за сортиране
Пример:
using System;
class MyProgram {
// функция heap sort, която извиква функцията heapify, за
да се изгради максимален heap и след това да се размени последният
максимален heap елемент с първия heap елемент
// Изключваме последния heap елемент и възстановяваме heap
//ако max не е i
if(max != i) {
int temp = Array[i];
Array[i] = Array[max];
Array[max] = temp;
//Рекурсивно натрупване на засегнатото поддърво
heapify(Array, n, max);
}
}
// тестване на кода
static void Main(string[] args) {
int[] MyArray = {10, 1, 23, 50, 7, -4};
Console.Write("Original Array\n");
PrintArray(MyArray);
heapsort(MyArray);
Console.Write("\nSorted Array\n");
PrintArray(MyArray);
}
}
Оригинален масив
10 1 23 50 7 -4
Сортиран масив
-4 1 7 10 23 50
2. Quick Sort
Пример:
using System;
class MyProgram {
// функция за бързо сортиране, която извиква функция за разделяне
// за подреждане и разделяне на списъка на базата на pivot елемент
// quicksort е рекурсивна функция
temp = Array[right];
Array[right] = Array[i];
Array[i] = temp;
return i;
}
// тестване на кода
static void Main(string[] args) {
int[] MyArray = {-4, 1, 25, 50, 8, 10, 23};
int n = MyArray.Length;
Console.Write("Original Array\n");
PrintArray(MyArray);
quicksort(MyArray, 0, n-1);
Console.Write("\nSorted Array\n");
PrintArray(MyArray);
}
}
Горният код ще даде следния резултат:
Оригинален масив
-4 1 25 50 8 10 23
Сортиран масив
-4 1 8 10 23 25 50
Заключение
Литература
[1] Sharma, V., S. Singh and K.S. Kahlon. Performance study of improved
HeapSort algorithm and other sorting algorithms on different platforms.
[3] Shahjala and M. Kaykobad. A new data structure or heap sort with
improved numbers of comparisons.
[4] H.-H. Chern, H.-K. Hwang and T.-H. Tsai, An asymptotic theory for
Cauchy-Euler differential equations with applications to the analysis of
algorithmsл