Skip to content

Commit 91e2413

Browse files
committed
Add new programs
1 parent 54bee9b commit 91e2413

File tree

2 files changed

+70
-2
lines changed

2 files changed

+70
-2
lines changed

mypc/main/java/MergeSort.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package main.java;
22

3-
/* Java program for Merge Sort */
3+
/*
4+
* Rutime of merge sort: O(nlogn) average and worst case
5+
* Memory: O(n)
6+
* */
47
class MergeSort
58
{
69
// Merges two subarrays of arr[].
@@ -80,7 +83,6 @@ void sort(int arr[], int l, int r)
8083
}
8184
}
8285

83-
/* A utility function to print array of size n */
8486
static void printArray(int arr[])
8587
{
8688
int n = arr.length;

mypc/main/java/QuickSort.java

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package main.java;
2+
3+
/*
4+
* Rutime of quicksort: O(nlogn) average, O(n2) worst case
5+
* Memory: O(logn)
6+
* */
7+
public class QuickSort {
8+
9+
public static void quicksort(int[] array) {
10+
quicksort(array, 0, array.length-1);
11+
}
12+
13+
public static void quicksort(int[] array, int left, int right) {
14+
if(left >= right) {
15+
return;
16+
}
17+
int pivot = array[(left + right)/2]; // pick pivot point
18+
int index = partition(array, left, right, pivot);
19+
quicksort(array, left, index-1);
20+
quicksort(array, index, right);
21+
22+
}
23+
24+
public static int partition(int[] array, int left, int right, int pivot) {
25+
while(left <= right) {
26+
// find element on left that should be on right
27+
while(array[left] < pivot) {
28+
left++;
29+
}
30+
// find element on right that should be on left
31+
while(array[right] > pivot) {
32+
right--;
33+
}
34+
if(left <= right) {
35+
swap(array, left, right);
36+
left++;
37+
right--;
38+
}
39+
}
40+
return left;
41+
}
42+
43+
public static void swap(int[] array, int left, int right) {
44+
int tmp = array[left];
45+
array[left] = array[right];
46+
array[right] = tmp;
47+
}
48+
49+
static void printArray(int arr[])
50+
{
51+
int n = arr.length;
52+
for (int i=0; i<n; ++i)
53+
System.out.print(arr[i] + " ");
54+
System.out.println();
55+
}
56+
57+
public static void main(String[] args) {
58+
int[] arr = {7,22,18,25,10,5,6,2};
59+
System.out.println("Before sorting array:");
60+
printArray(arr);
61+
quicksort(arr);
62+
System.out.println("\nAfter sorting array:");
63+
printArray(arr);
64+
}
65+
66+
}

0 commit comments

Comments
 (0)