Skip to content

Commit c0dbf9e

Browse files
authored
Add files via upload
1 parent a5080c9 commit c0dbf9e

25 files changed

+1163
-0
lines changed

Algorithms/Sorting/BucketSort.cpp

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#include<bits/stdc++.h>
2+
using namespace std;
3+
4+
#define SIZE 1000
5+
6+
void bucketSort(int a[], int n) {
7+
int i, j, k, buckets[SIZE];
8+
9+
for(i = 0; i < SIZE; ++i)
10+
buckets[i] = 0;
11+
12+
for(i = 0; i < n; ++i)
13+
++buckets[a[i]];
14+
15+
for(i = 0, j = 0; j < SIZE; ++j)
16+
for(k = buckets[j]; k > 0; --k)
17+
a[i++] = j;
18+
}
19+
20+
int main() {
21+
int i, a[] = {3, 6, 7, 1, 10, 4, 1, 2};
22+
int n = sizeof(a)/sizeof(a[0]);
23+
24+
cout << "Before sorting:\n";
25+
for(i = 0; i < n; ++i)
26+
cout << a[i] << " ";
27+
28+
bucketSort(a, n);
29+
30+
cout<< "\n\nAfter sorting:\n";
31+
for(i = 0; i < n; ++i)
32+
cout<< a[i] << " ";
33+
34+
return 0;
35+
}

Algorithms/Sorting/BucketSort.java

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package sorting;
2+
3+
import java.util.Random;
4+
5+
public class BucketSort
6+
{
7+
static int[] sort(int[] sequence, int maxValue) {
8+
// Bucket Sort
9+
int[] Bucket = new int[maxValue + 1];
10+
int[] sorted_sequence = new int[sequence.length];
11+
12+
for (int i = 0; i < sequence.length; i++)
13+
Bucket[sequence[i]]++;
14+
15+
int outPos = 0;
16+
for (int i = 0; i < Bucket.length; i++)
17+
for (int j = 0; j < Bucket[i]; j++)
18+
sorted_sequence[outPos++] = i;
19+
20+
return sorted_sequence;
21+
}
22+
23+
static void printSequence(int[] sorted_sequence) {
24+
for (int i = 0; i < sorted_sequence.length; i++)
25+
System.out.print(sorted_sequence[i] + " ");
26+
}
27+
28+
static int maxValue(int[] sequence) {
29+
int maxValue = 0;
30+
for (int i = 0; i < sequence.length; i++)
31+
if (sequence[i] > maxValue)
32+
maxValue = sequence[i];
33+
return maxValue;
34+
}
35+
36+
public static void main(String args[]) {
37+
System.out.println("Generate random numbers using BUCKET SORT:");
38+
Random random = new Random();
39+
int N = 20;
40+
int[] sequence = new int[N];
41+
42+
for (int i = 0; i < N; i++)
43+
sequence[i] = Math.abs(random.nextInt(100));
44+
45+
int maxValue = maxValue(sequence);
46+
47+
System.out.println("\nOriginal Sequence: ");
48+
printSequence(sequence);
49+
50+
System.out.println("\nSorted Sequence: ");
51+
printSequence(sort(sequence, maxValue));
52+
}
53+
}

Algorithms/Sorting/BucketSort.py

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
def sort(array, bucketSize=DEFAULT_BUCKET_SIZE):
2+
if len(array) == 0:
3+
return array
4+
5+
# Determine minimum and maximum values
6+
minValue = array[0]
7+
maxValue = array[0]
8+
for i in range(1, len(array)):
9+
if array[i] < minValue:
10+
minValue = array[i]
11+
elif array[i] > maxValue:
12+
maxValue = array[i]
13+
14+
# Initialize buckets
15+
bucketCount = math.floor((maxValue - minValue) / bucketSize) + 1
16+
buckets = []
17+
for i in range(0, bucketCount):
18+
buckets.append([])
19+
20+
# Distribute input array values into buckets
21+
for i in range(0, len(array)):
22+
buckets[math.floor((array[i] - minValue) / bucketSize)].append(array[i])
23+
24+
# Sort buckets and place back into input array
25+
array = []
26+
for i in range(0, len(buckets)):
27+
insertion_sort.sort(buckets[i])
28+
for j in range(0, len(buckets[i])):
29+
array.append(buckets[i][j])
30+
31+
return array

Algorithms/Sorting/CocktailSort.cs

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
public class CocktailSort<T> : IGenericSortingAlgorithm<T> where T : IComparable
2+
{
3+
public void Sort(IList<T> list)
4+
{
5+
int start = -1;
6+
int end = list.Count - 2;
7+
bool swapped;
8+
9+
do {
10+
swapped = false;
11+
for (int i = ++start; i <= end; i++) {
12+
if (list[i].CompareTo(list[i + 1]) > 0) {
13+
Swap(list, i, i + 1);
14+
swapped = true;
15+
}
16+
}
17+
18+
if (!swapped) {
19+
break;
20+
}
21+
22+
swapped = false;
23+
for (int i = --end; i >= start; i--) {
24+
if (list[i].CompareTo(list[i + 1]) > 0) {
25+
Swap(list, i, i + 1);
26+
swapped = true;
27+
}
28+
}
29+
} while (swapped);
30+
}
31+
32+
private void Swap(IList<T> list, int a, int b)
33+
{
34+
T temp = list[a];
35+
list[a] = list[b];
36+
list[b] = temp;
37+
}
38+
}

Algorithms/Sorting/CocktailSort.java

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package sorting;
2+
3+
public class CocktailSort {
4+
5+
public static void main(String []args) {
6+
int[] arr = {2,5,6,4,11,22,10,1};
7+
8+
System.out.println("Before Sorting:");
9+
for(int j=0; j<arr.length; j++)
10+
System.out.print(arr[j] + " ");
11+
12+
sort(arr);
13+
14+
System.out.println("\n\nAfter Sorting:");
15+
for(int j=0; j<arr.length; j++)
16+
System.out.print(arr[j] + " ");
17+
}
18+
19+
public static void sort(int[] array) {
20+
int start = -1;
21+
int end = array.length - 2;
22+
boolean swapped;
23+
24+
do {
25+
swapped = false;
26+
for (int i = ++start; i <= end; i++) {
27+
if (array[i] > array[i + 1]) {
28+
swap(array, i, i + 1);
29+
swapped = true;
30+
}
31+
}
32+
33+
if (!swapped) {
34+
break;
35+
}
36+
37+
swapped = false;
38+
for (int i = --end; i >= start; i--) {
39+
if (array[i] > array[i + 1]) {
40+
swap(array, i, i + 1);
41+
swapped = true;
42+
}
43+
}
44+
} while (swapped);
45+
}
46+
47+
private static void swap(int[] array, int a, int b) {
48+
Integer temp = array[a];
49+
array[a] = array[b];
50+
array[b] = temp;
51+
}
52+
}

Algorithms/Sorting/CombSort.py

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
def default_compare(a, b):
2+
if a < b:
3+
return -1
4+
elif a > b:
5+
return 1
6+
return 0
7+
8+
def sort(array, compare=default_compare):
9+
gap = len(array)
10+
shrinkFactor = 1.3
11+
swapped = False
12+
13+
while gap > 1 or swapped:
14+
if gap > 1:
15+
gap = math.floor(gap / shrinkFactor)
16+
swapped = False
17+
for i in range(len(array) - gap):
18+
if compare(array[i], array[i + gap]) > 0:
19+
array[i], array[i + gap] = array[i + gap], array[i]
20+
swapped = True
21+
22+
return array

Algorithms/Sorting/CountingSort.cpp

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#include<bits/stdc++.h>
2+
using namespace std;
3+
4+
void countingSort(int arr[], int n, int max) {
5+
int i, j;
6+
int B[20], C[100];
7+
8+
for(i=0; i<=max; i++) C[i] = 0;
9+
for(j=1; j<=n; j++) C[arr[j]] = C[arr[j]] + 1;
10+
for(i=1; i<=max; i++) C[i] = C[i] + C[i-1];
11+
for(j=n; j>=1; j--) {
12+
B[C[arr[j]]] = arr[j];
13+
C[arr[j]] = C[arr[j]] - 1;
14+
}
15+
16+
printf("The Sorted array is:\n");
17+
for(i=1; i<=n; i++)
18+
printf("%d ", B[i]);
19+
return;
20+
}
21+
22+
int main()
23+
{
24+
int a[50],n,i,max=0;
25+
printf("Enter number of elements: ");
26+
scanf("%d",&n);
27+
28+
printf("Enter elements:\n");
29+
for(i=1; i<=n; ++i) {
30+
scanf("%d",&a[i]);
31+
if(a[i] > max)
32+
max = a[i];
33+
}
34+
35+
countingSort(a, n, max);
36+
37+
return 0;
38+
}

Algorithms/Sorting/CountingSort.cs

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
public class CountingSort : IIntegerSortingAlgorithm {
2+
public void Sort(int[] array) {
3+
if (array.Length == 0) {
4+
return;
5+
}
6+
7+
// Determine minimum and maximum values
8+
int minValue = array[0];
9+
int maxValue = array[0];
10+
for (int i = 1; i < array.Length; i++) {
11+
if (array[i] < minValue) {
12+
minValue = array[i];
13+
} else if (array[i] > maxValue) {
14+
maxValue = array[i];
15+
}
16+
}
17+
18+
Sort(array, minValue, maxValue);
19+
}
20+
21+
public void Sort(int[] array, int minValue, int maxValue) {
22+
int[] buckets = new int[maxValue - minValue + 1];
23+
24+
for (int i = 0; i < array.Length; i++) {
25+
buckets[array[i] - minValue]++;
26+
}
27+
28+
int sortedIndex = 0;
29+
for (int i = 0; i < buckets.Length; i++) {
30+
while (buckets[i] > 0) {
31+
array[sortedIndex++] = i + minValue;
32+
buckets[i]--;
33+
}
34+
}
35+
}
36+
}

Algorithms/Sorting/CountingSort.java

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package sorting;
2+
3+
public class CountingSort {
4+
public static void sort(Integer[] array) {
5+
if (array.length == 0) {
6+
return;
7+
}
8+
9+
// Determine minimum and maximum values
10+
Integer minValue = array[0];
11+
Integer maxValue = array[0];
12+
for (int i = 1; i < array.length; i++) {
13+
if (array[i] < minValue) {
14+
minValue = array[i];
15+
} else if (array[i] > maxValue) {
16+
maxValue = array[i];
17+
}
18+
}
19+
20+
sort(array, minValue, maxValue);
21+
}
22+
23+
public static void sort(Integer[] array, int minValue, int maxValue) {
24+
int[] buckets = new int[maxValue - minValue + 1];
25+
26+
for (int i = 0; i < array.length; i++) {
27+
buckets[array[i] - minValue]++;
28+
}
29+
30+
int sortedIndex = 0;
31+
for (int i = 0; i < buckets.length; i++) {
32+
while (buckets[i] > 0) {
33+
array[sortedIndex++] = i + minValue;
34+
buckets[i]--;
35+
}
36+
}
37+
}
38+
}

0 commit comments

Comments
 (0)