forked from dharmanshu1921/Java
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQuickSort.java
More file actions
Latest commit
78 lines (68 loc) · 1.7 KB
/
Copy pathQuickSort.java
File metadata and controls
78 lines (68 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// Java program for implementation of QuickSort
classQuickSort
{
/* This function takes last element as pivot,
places the pivot element at its correct
position in sorted array, and places all
smaller (smaller than pivot) to left of
pivot and all greater elements to right
of pivot */
intpartition(intarr[], intlow, inthigh)
{
intpivot = arr[high];
inti = (low-1); // index of smaller element
for (intj=low; j<high; j++)
{
// If current element is smaller than or
// equal to pivot
if (arr[j] <= pivot)
{
i++;
// swap arr[i] and arr[j]
inttemp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
// swap arr[i+1] and arr[high] (or pivot)
inttemp = arr[i+1];
arr[i+1] = arr[high];
arr[high] = temp;
returni+1;
}
/* The main function that implements QuickSort()
arr[] --> Array to be sorted,
low --> Starting index,
high --> Ending index */
voidsort(intarr[], intlow, inthigh)
{
if (low < high)
{
/* pi is partitioning index, arr[pi] is
now at right place */
intpi = partition(arr, low, high);
// Recursively sort elements before
// partition and after partition
sort(arr, low, pi-1);
sort(arr, pi+1, high);
}
}
/* A utility function to print array of size n */
staticvoidprintArray(intarr[])
{
intn = arr.length;
for (inti=0; i<n; ++i)
System.out.print(arr[i]+" ");
System.out.println();
}
// Driver program
publicstaticvoidmain(Stringargs[])
{
intarr[] = {10, 7, 8, 9, 1, 5};
intn = arr.length;
QuickSortob = newQuickSort();
ob.sort(arr, 0, n-1);
System.out.println("sorted array");
printArray(arr);
}
}