Example 1: quick sort program in c
#include<stdio.h>
void quicksort(int number[25],int first,int last){
int i, j, pivot, temp;
if(first<last){
pivot=first;
i=first;
j=last;
while(i<j){
while(number[i]<=number[pivot]&&i<last)
i++;
while(number[j]>number[pivot])
j--;
if(i<j){
temp=number[i];
number[i]=number[j];
number[j]=temp;
}
}
temp=number[pivot];
number[pivot]=number[j];
number[j]=temp;
quicksort(number,first,j-1);
quicksort(number,j+1,last);
}
}
int main(){
int i, count, number[25];
printf("How many elements are u going to enter?: ");
scanf("%d",&count);
printf("Enter %d elements: ", count);
for(i=0;i<count;i++)
scanf("%d",&number[i]);
quicksort(number,0,count-1);
printf("Order of Sorted elements: ");
for(i=0;i<count;i++)
printf(" %d",number[i]);
return 0;
}
Example 2: quicksort
function partition(list, start, end) {
const pivot = list[end];
let i = start;
for (let j = start; j < end; j += 1) {
if (list[j] <= pivot) {
[list[j], list[i]] = [list[i], list[j]];
i++;
}
}
[list[i], list[end]] = [list[end], list[i]];
return i;
}
function quicksort(list, start = 0, end = undefined) {
if (end === undefined) {
end = list.length - 1;
}
if (start < end) {
const p = partition(list, start, end);
quicksort(list, start, p - 1);
quicksort(list, p + 1, end);
}
return list;
}
quicksort([5, 4, 2, 6, 10, 8, 7, 1, 0]);
Example 3: quicksort in code
#include <iostream>
using namespace std;
void QuickSort(int arr[], int start, int end);
int Partition(int arr[], int start, int end);
void SwapArrMem(int arr[], int a, int b);
int main()
{
int arr[4];
cout << "enter " << sizeof(arr) / sizeof(arr[0]) << " numbers. press enter after input" << endl;
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
cin >> arr[i];
}
cout << endl << "The sorted numbers are:" << endl << endl;
QuickSort(arr, 0, sizeof(arr) / sizeof(arr[0]) - 1);
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
cout << arr[i] << endl;
}
}
void QuickSort(int arr[], int start, int end)
{
if (start >= end) return;
int index = Partition(arr, start, end);
QuickSort(arr, start, index - 1);
QuickSort(arr, index + 1, end);
}
int Partition(int arr[], int start, int end)
{
int pivotindex = start;
int pivotvalue = arr[end];
for (int i = start; i < end; i++)
{
if (arr[i] < pivotvalue)
{
SwapArrMem(arr, i, pivotindex);
pivotindex++;
}
}
SwapArrMem(arr, pivotindex, end);
return pivotindex;
}
void SwapArrMem(int arr[], int a, int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
Example 4: quicksort
#define QS_TYPE char*
#define QS_COMPARE(a,b) (strcmp((a),(b)))
void QuickSort(QS_TYPE list[], int beg, int end)
{
QS_TYPE piv; QS_TYPE tmp;
int l,r,p;
while (beg<end)
{
l = beg; p = (beg+end)/2; r = end;
piv = list[p];
while (1)
{
while ((l<=r) && (QS_COMPARE(list[l],piv) <= 0)) l++;
while ((l<=r) && (QS_COMPARE(list[r],piv) > 0)) r--;
if (l>r) break;
tmp=list[l]; list[l]=list[r]; list[r]=tmp;
if (p==r) p=l;
l++; r--;
}
list[p]=list[r]; list[r]=piv;
r--;
if ((r-beg)<(end-l))
{
QuickSort(list, beg, r);
beg=l;
}
else
{
QuickSort(list, l, end);
end=r;
}
}
}