You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.9 KiB
C#
71 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace Quick_Sort
|
|
{
|
|
class Program
|
|
{
|
|
private static void Quick_Sort(int[] arr, int left, int right)
|
|
{
|
|
if (left < right)
|
|
{
|
|
int pivot = Partition(arr, left, right);
|
|
if (pivot > 1)
|
|
{
|
|
Quick_Sort(arr, left, pivot - 1);
|
|
}
|
|
if (pivot + 1 < right)
|
|
{
|
|
Quick_Sort(arr, pivot + 1, right);
|
|
}
|
|
}
|
|
}
|
|
|
|
private static int Partition(int[] arr, int left, int right)
|
|
{
|
|
int pivot = arr[left];
|
|
while (true)
|
|
{
|
|
while (arr[left] < pivot)
|
|
{
|
|
left++;
|
|
}
|
|
while (arr[right] > pivot)
|
|
{
|
|
right--;
|
|
}
|
|
if (left < right)
|
|
{
|
|
if (arr[left] == arr[right]) return right;
|
|
int temp = arr[left];
|
|
arr[left] = arr[right];
|
|
arr[right] = temp;
|
|
}
|
|
else
|
|
{
|
|
return right;
|
|
}
|
|
}
|
|
}
|
|
static void Main(string[] args)
|
|
{
|
|
int[] arr = new int[] { 2, 5, -4, 11, 0, 18, 22, 67, 51, 6 };
|
|
Console.WriteLine("Original array : ");
|
|
foreach (var item in arr)
|
|
{
|
|
Console.Write(" " + item);
|
|
}
|
|
Console.WriteLine();
|
|
Quick_Sort(arr, 0, arr.Length-1);
|
|
Console.WriteLine();
|
|
Console.WriteLine("Sorted array : ");
|
|
foreach (var item in arr)
|
|
{
|
|
Console.Write(" " + item);
|
|
}
|
|
Console.WriteLine();
|
|
}
|
|
}
|
|
} |