From 534e5e2dac08f42dd6709cbef126a874de190912 Mon Sep 17 00:00:00 2001 From: Vaibhavpan02 <89473295+Vaibhavpan02@users.noreply.github.com> Date: Sun, 30 Oct 2022 22:12:05 +0530 Subject: [PATCH 1/3] Create Prime_number.c --- 36. C Programs/Prime_number.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 36. C Programs/Prime_number.c diff --git a/36. C Programs/Prime_number.c b/36. C Programs/Prime_number.c new file mode 100644 index 0000000..9a38023 --- /dev/null +++ b/36. C Programs/Prime_number.c @@ -0,0 +1,31 @@ +#include + +int main() { + + int n, i, flag = 0; + printf("Enter a positive integer: "); + scanf("%d", &n); + + // 0 and 1 are not prime numbers + // change flag to 1 for non-prime number + if (n == 0 || n == 1) + flag = 1; + + for (i = 2; i <= n / 2; ++i) { + + // if n is divisible by i, then n is not prime + // change flag to 1 for non-prime number + if (n % i == 0) { + flag = 1; + break; + } + } + + // flag is 0 for prime numbers + if (flag == 0) + printf("%d is a prime number.", n); + else + printf("%d is not a prime number.", n); + + return 0; +} From a5df7b9d8052f3b3c92072005c02f9e477d27208 Mon Sep 17 00:00:00 2001 From: Vaibhavpan02 <89473295+Vaibhavpan02@users.noreply.github.com> Date: Sun, 30 Oct 2022 22:14:02 +0530 Subject: [PATCH 2/3] Create Counting_Sort.java --- 32. Java Programs/Counting_Sort.java | 54 ++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 32. Java Programs/Counting_Sort.java diff --git a/32. Java Programs/Counting_Sort.java b/32. Java Programs/Counting_Sort.java new file mode 100644 index 0000000..81c9baf --- /dev/null +++ b/32. Java Programs/Counting_Sort.java @@ -0,0 +1,54 @@ +// Counting sort in Java programming + +import java.util.Arrays; + +class CountingSort { + void countSort(int array[], int size) { + int[] output = new int[size + 1]; + + // Find the largest element of the array + int max = array[0]; + for (int i = 1; i < size; i++) { + if (array[i] > max) + max = array[i]; + } + int[] count = new int[max + 1]; + + // Initialize count array with all zeros. + for (int i = 0; i < max; ++i) { + count[i] = 0; + } + + // Store the count of each element + for (int i = 0; i < size; i++) { + count[array[i]]++; + } + + // Store the cummulative count of each array + for (int i = 1; i <= max; i++) { + count[i] += count[i - 1]; + } + + // Find the index of each element of the original array in count array, and + // place the elements in output array + for (int i = size - 1; i >= 0; i--) { + output[count[array[i]] - 1] = array[i]; + count[array[i]]--; + } + + // Copy the sorted elements into original array + for (int i = 0; i < size; i++) { + array[i] = output[i]; + } + } + + // Driver code + public static void main(String args[]) { + int[] data = { 4, 2, 2, 8, 3, 3, 1 }; + int size = data.length; + CountingSort cs = new CountingSort(); + cs.countSort(data, size); + System.out.println("Sorted Array in Ascending Order: "); + System.out.println(Arrays.toString(data)); + } +} From afd24fc3cb140d76087a71116fa27e50bb5346a9 Mon Sep 17 00:00:00 2001 From: Vaibhavpan02 <89473295+Vaibhavpan02@users.noreply.github.com> Date: Sun, 30 Oct 2022 22:16:35 +0530 Subject: [PATCH 3/3] Create Radix_Sort.java --- 32. Java Programs/Radix_Sort.java | 66 +++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 32. Java Programs/Radix_Sort.java diff --git a/32. Java Programs/Radix_Sort.java b/32. Java Programs/Radix_Sort.java new file mode 100644 index 0000000..c4bb5f7 --- /dev/null +++ b/32. Java Programs/Radix_Sort.java @@ -0,0 +1,66 @@ +// Radix Sort in Java Programming + +import java.util.Arrays; + +class RadixSort { + + // Using counting sort to sort the elements in the basis of significant places + void countingSort(int array[], int size, int place) { + int[] output = new int[size + 1]; + int max = array[0]; + for (int i = 1; i < size; i++) { + if (array[i] > max) + max = array[i]; + } + int[] count = new int[max + 1]; + + for (int i = 0; i < max; ++i) + count[i] = 0; + + // Calculate count of elements + for (int i = 0; i < size; i++) + count[(array[i] / place) % 10]++; + + // Calculate cumulative count + for (int i = 1; i < 10; i++) + count[i] += count[i - 1]; + + // Place the elements in sorted order + for (int i = size - 1; i >= 0; i--) { + output[count[(array[i] / place) % 10] - 1] = array[i]; + count[(array[i] / place) % 10]--; + } + + for (int i = 0; i < size; i++) + array[i] = output[i]; + } + + // Function to get the largest element from an array + int getMax(int array[], int n) { + int max = array[0]; + for (int i = 1; i < n; i++) + if (array[i] > max) + max = array[i]; + return max; + } + + // Main function to implement radix sort + void radixSort(int array[], int size) { + // Get maximum element + int max = getMax(array, size); + + // Apply counting sort to sort elements based on place value. + for (int place = 1; max / place > 0; place *= 10) + countingSort(array, size, place); + } + + // Driver code + public static void main(String args[]) { + int[] data = { 121, 432, 564, 23, 1, 45, 788 }; + int size = data.length; + RadixSort rs = new RadixSort(); + rs.radixSort(data, size); + System.out.println("Sorted Array in Ascending Order: "); + System.out.println(Arrays.toString(data)); + } +}