Skip to content

Commit c616315

Browse files
committedJul 26, 2015
Merge Sort
1 parent 9c2687f commit c616315

File tree

9 files changed

+152
-0
lines changed

9 files changed

+152
-0
lines changed
 

Diff for: ‎bin/sequentialCollection/dance.txt

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
M Raymond Williams
2+
F Cynthia Fehrenbach
3+
F Jennifer Ingram
4+
M David Durr
5+
M Bryan Frazer
6+
F Beata Lovelace
7+
F Alisa Brown
8+
M Clayton Ruff
9+
M Terrill Beckerman
10+
F Cindy Beck
11+
M Mayo Johnson
12+
M Mike Dahly

Diff for: ‎bin/sortingNSearching/Bitset.class

1.06 KB
Binary file not shown.

Diff for: ‎bin/sortingNSearching/BubbleSort.class

1.27 KB
Binary file not shown.

Diff for: ‎bin/sortingNSearching/InsertionSort.class

990 Bytes
Binary file not shown.

Diff for: ‎bin/sortingNSearching/MergeSort.class

1.85 KB
Binary file not shown.

Diff for: ‎src/sortingNSearching/Bitset.java

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package sortingNSearching;
2+
3+
import java.util.BitSet;
4+
5+
public class Bitset {
6+
7+
public static void main(String[] args) {
8+
BitSet bs = new BitSet();
9+
int arr[] = {5,3,9,3,7,8};
10+
11+
for(int i = 0 ; i < arr.length ; ++i)
12+
if(bs.get(arr[i]))
13+
System.out.println(arr[i] + " is already present ");
14+
else
15+
bs.set(arr[i]);
16+
}
17+
18+
}

Diff for: ‎src/sortingNSearching/BubbleSort.java

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package sortingNSearching;
2+
3+
public class BubbleSort {
4+
5+
public static void main(String[] args) {
6+
int num[] = new int[10];
7+
for (int i = 0; i < num.length; ++i) {
8+
num[i] = (int) (Math.random() * 100);
9+
}
10+
11+
// before sort
12+
System.out.println("Before sort : ");
13+
for (int i = 0; i < num.length; ++i)
14+
System.out.print (num[i] + " ");
15+
16+
System.out.println("\n after sort : ");
17+
18+
for (int passes = 1; passes < num.length; ++passes)
19+
for (int j = 0; j < num.length - passes ; ++j) {
20+
if(num[j] > num[j+1] )
21+
{
22+
int temp = num[j];
23+
num[j] = num[j+1] ;
24+
num[j+1] = temp;
25+
26+
}
27+
}
28+
29+
for(int i= 0 ; i < num.length ; ++i)
30+
System.out.print(num[i] + " ");
31+
}
32+
33+
}

Diff for: ‎src/sortingNSearching/InsertionSort.java

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package sortingNSearching;
2+
3+
public class InsertionSort {
4+
5+
public static void main(String[] args) {
6+
int numbers[] = { 1, 5, 8, 4, 3, 13, 99, 3, 67, 33 };
7+
8+
for (int i = 1; i < numbers.length; ++i) {
9+
int key = numbers[i];
10+
int j = i - 1;
11+
while( j >= 0 && numbers[j] > key)
12+
{
13+
numbers[j+1] = numbers[j];
14+
--j;
15+
}
16+
numbers[j+1] = key;
17+
18+
}
19+
20+
for (Integer i : numbers)
21+
System.out.println(i);
22+
23+
}
24+
25+
}

Diff for: ‎src/sortingNSearching/MergeSort.java

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package sortingNSearching;
2+
3+
public class MergeSort {
4+
5+
public static void main(String[] args) {
6+
int num[] = new int[10];
7+
for (int i = 0; i < num.length; ++i) {
8+
num[i] = (int) (Math.random() * 100);
9+
}
10+
11+
// before sort
12+
System.out.println("Before sort : ");
13+
for (int i = 0; i < num.length; ++i)
14+
System.out.print(num[i] + " ");
15+
16+
System.out.println("\n after sort : ");
17+
18+
int helper[] = new int[num.length];
19+
20+
mergeSort(num, helper, 0, num.length - 1);
21+
22+
// before sort
23+
System.out.println("Before sort : ");
24+
for (int i = 0; i < num.length; ++i)
25+
System.out.print(num[i] + " ");
26+
27+
}
28+
29+
private static void mergeSort(int[] num, int[] helper, int low, int high) {
30+
if (low < high) {
31+
int mid = (high + low) / 2;
32+
mergeSort(num, helper, low, mid);
33+
mergeSort(num, helper, mid + 1, high);
34+
merge(num, helper, low, mid, high);
35+
}
36+
37+
}
38+
39+
private static void merge(int[] num, int[] helper, int low, int mid,
40+
int high) {
41+
42+
// copy both halves in helper array
43+
for (int i = low; i <= high; ++i)
44+
helper[i] = num[i];
45+
int helperLeft = low;
46+
int helperRight = mid + 1;
47+
int current = low;
48+
49+
while (helperLeft <= mid && helperRight <= high) {
50+
if (helper[helperLeft] <= helper[helperRight]) {
51+
num[current++] = helper[helperLeft++];
52+
53+
} else {
54+
num[current++] = helper[helperRight++];
55+
}
56+
}
57+
58+
int remaining = mid - helperLeft;
59+
60+
for (int i = 0; i <= remaining; ++i) {
61+
num[current + i] = helper[helperLeft + i];
62+
}
63+
}
64+
}

0 commit comments

Comments
 (0)
Please sign in to comment.