Advertisement
Jaagdish47

Sorting Techniques

Nov 23rd, 2024
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.12 KB | Source Code | 0 0
  1. Sorting Techinques
  2. 3A. Write a program to implement bubble sort.
  3. Sort the following array using bubble sort technique
  4. 8,7,5,11,15,2.
  5.  
  6. #include <stdio.h>
  7. #include <conio.h> // Required for clrscr() and getch()
  8.  
  9. int main() {
  10.     int a[6] = {8, 7, 5, 11, 15, 2}; // Array initialization
  11.     int p, n, j, i, temp;
  12.  
  13.     clrscr(); // Clears the screen
  14.  
  15.     n = 6; // Length of the array
  16.  
  17.     // Display the original array
  18.     printf("\n A : \t");
  19.     for (i = 0; i < n; i++) {
  20.         printf("%d\t", a[i]);
  21.     }
  22.  
  23.     // Bubble Sort algorithm
  24.     for (p = 1; p <= n - 1; p++) {
  25.         printf("\n Pass : %d", p);
  26.         for (i = 0; i < n - p; i++) {
  27.             if (a[i] > a[i + 1]) {
  28.                 // Swap elements
  29.                 temp = a[i];
  30.                 a[i] = a[i + 1];
  31.                 a[i + 1] = temp;
  32.             }
  33.         }
  34.  
  35.         // Display the array after each pass
  36.         printf("\n A : \t");
  37.         for (j = 0; j < n; j++) {
  38.             printf("%d\t", a[j]);
  39.         }
  40.     }
  41.  
  42.     getch(); // Wait for a key press
  43.     return 0;
  44. }
  45.  
  46.  
  47. 3B. Write a program to implement selection sort
  48. Sort the following array using selection sort technique
  49. 73,18,10,5,21,32,74.
  50.  
  51. #include <stdio.h>
  52. #include <conio.h> // Required for clrscr() and getch()
  53.  
  54. int a[30], n;
  55.  
  56. // Function declaration
  57. void selection_sort();
  58.  
  59. int main() {
  60.     int i;
  61.  
  62.     clrscr(); // Clear screen for Turbo C
  63.  
  64.     printf("Enter the Size of Array! : ");
  65.     scanf("%d", &n);
  66.  
  67.     for (i = 0; i < n; i++) {
  68.         printf("Enter the elements of the array: ");
  69.         scanf("%d", &a[i]);
  70.     }
  71.  
  72.     // Call the selection sort function
  73.     selection_sort();
  74.  
  75.     printf("\n\nElements after Sorting: ");
  76.     for (i = 0; i < n; i++) {
  77.         printf("%d ", a[i]);
  78.     }
  79.  
  80.     getch(); // Wait for a key press
  81.     return 0;
  82. }
  83.  
  84. // Function definition
  85. void selection_sort() {
  86.     int i, j, min, temp;
  87.  
  88.     for (i = 0; i < n - 1; i++) {
  89.         min = i;
  90.         for (j = i + 1; j < n; j++) {
  91.             if (a[j] < a[min]) {
  92.                 min = j;
  93.             }
  94.         }
  95.         // Swap elements
  96.         temp = a[i];
  97.         a[i] = a[min];
  98.         a[min] = temp;
  99.     }
  100. }
  101.  
  102. 3C. Write a program to implement insertion sortWrite a program to implement insertion sort
  103. Sort the following array using insertion sort technique
  104. 15,11,18,5,3,7,21
  105.  
  106. #include <stdio.h>
  107. #include <conio.h> // Required for Turbo C functions
  108.  
  109. int main() {
  110.     int a[7] = {15, 11, 18, 5, 3, 7, 21}, i, n, temp, k, j;
  111.     n = 7;
  112.  
  113.     clrscr(); // Clear screen for Turbo C
  114.  
  115.     // Display the original array
  116.     printf("\n A : \t");
  117.     for (i = 0; i < n; i++) {
  118.         printf("%d \t", a[i]);
  119.     }
  120.  
  121.     // Insertion sort algorithm
  122.     for (i = 1; i < n; i++) {
  123.         printf("\n Pass! %d", i);
  124.         temp = a[i];
  125.         k = i - 1;
  126.  
  127.         while (k >= 0 && temp < a[k]) {
  128.             a[k + 1] = a[k];
  129.             k = k - 1;
  130.         }
  131.         a[k + 1] = temp;
  132.  
  133.         // Display the array after each pass
  134.         printf("\n A : \t");
  135.         for (j = 0; j < n; j++) {
  136.             printf("%d \t", a[j]);
  137.         }
  138.     }
  139.  
  140.     getch(); // Wait for a key press
  141.     return 0;
  142. }
  143.  
  144. 4A. : Write a program to implement Merge Sort
  145.  
  146. #include <stdio.h>
  147. #include <conio.h> // Required for Turbo C functions
  148.  
  149. #define MAX 10 // Maximum size of the array
  150.  
  151. // Merge function
  152. void merge(int a[], int temp[], int l_pos, int r_pos, int r_end) {
  153.     int i, l_end, n, tmp_pos;
  154.     l_end = r_pos - 1;
  155.     tmp_pos = l_pos;
  156.     n = r_end - l_pos + 1;
  157.  
  158.     while (l_pos <= l_end && r_pos <= r_end) {
  159.         if (a[l_pos] <= a[r_pos]) {
  160.             temp[tmp_pos++] = a[l_pos++];
  161.         } else {
  162.             temp[tmp_pos++] = a[r_pos++];
  163.         }
  164.     }
  165.  
  166.     while (l_pos <= l_end) {
  167.         temp[tmp_pos++] = a[l_pos++];
  168.     }
  169.  
  170.     while (r_pos <= r_end) {
  171.         temp[tmp_pos++] = a[r_pos++];
  172.     }
  173.  
  174.     // Copy the sorted temp array back to the original array
  175.     for (i = 0; i < n; i++, r_end--) {
  176.         a[r_end] = temp[r_end];
  177.     }
  178. }
  179.  
  180. // Recursive function to divide the array
  181. void Msort(int a[], int temp[], int left, int right) {
  182.     int center;
  183.     if (left < right) {
  184.         center = (left + right) / 2;
  185.         Msort(a, temp, left, center);
  186.         Msort(a, temp, center + 1, right);
  187.         merge(a, temp, left, center + 1, right);
  188.     }
  189. }
  190.  
  191. // Merge sort function
  192. void mergeSort(int a[], int n) {
  193.     int temp[MAX]; // Statically allocate the temporary array
  194.     Msort(a, temp, 0, n - 1);
  195. }
  196.  
  197. // Main function
  198. int main() {
  199.     int i, n, a[MAX];
  200.  
  201.     clrscr(); // Clear screen for Turbo C
  202.  
  203.     printf("Enter the number of elements: ");
  204.     scanf("%d", &n);
  205.  
  206.     if (n > MAX) {
  207.         printf("Error: Maximum array size exceeded!\n");
  208.         return 1;
  209.     }
  210.  
  211.     for (i = 0; i < n; i++) {
  212.         printf("Enter the elements: ");
  213.         scanf("%d", &a[i]);
  214.     }
  215.  
  216.     mergeSort(a, n);
  217.  
  218.     printf("\nThe Sorted Elements Are: ");
  219.     for (i = 0; i < n; i++) {
  220.         printf("%d ", a[i]);
  221.     }
  222.  
  223.     getch(); // Wait for a key press
  224.     return 0;
  225. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement