tyrion

sorting.c

Nov 7th, 2011
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2.  
  3. void print(int array[], int length) {
  4.     int i;
  5.     printf("{ %d", array[0]);
  6.     for (i = 1; i < length; i++)
  7.         printf(", %d", array[i]);
  8.     printf(" }\n");
  9. }
  10.  
  11. void selectionsort(int array[], int length) {
  12.     int i, j, min, first;
  13.     for (i = 0; i < length -1; i++) {
  14.  
  15.         // find the index of the minimum
  16.         min = i;
  17.         for (j = i +1; j < length; j++)
  18.             if (array[j] < array[min]) min = j;
  19.  
  20.         // put the minimum on top
  21.         first = array[i];
  22.         array[i] = array[min];
  23.         array[min] = first;
  24.     }
  25. }
  26.  
  27. void insertionsort(int array[], int length) {
  28.     int i, j, curr;
  29.     for (i = 0; i < length; i++) {
  30.         curr = array[i];
  31.         for (j = i-1; j >= 0 && array[j] > curr; j--)
  32.             array[j+1] = array[j];
  33.         array[j+1] = curr;
  34.     }
  35. }
  36.  
  37. main() {
  38.     int a[] = {5, 7, 86, 2, -7, 6, 6};
  39.     printf("selection sort:\n");
  40.     print(a, 7);
  41.     selectionsort(a, 7);
  42.     print(a, 7);
  43.  
  44.     int b[] = {98, -72, 45, 3, 5, -1};
  45.     printf("insertion sort:\n");
  46.     print(b, 6);
  47.     insertionsort(b, 6);
  48.     print(b, 6);
  49. }
Advertisement
Add Comment
Please, Sign In to add comment