diff options
author | garhve <git@garhve.com> | 2022-12-05 19:43:39 +0800 |
---|---|---|
committer | garhve <git@garhve.com> | 2022-12-05 19:43:39 +0800 |
commit | c6bc541ab58363d783e60a007e80e9bf9e231fda (patch) | |
tree | a59c7ed0d05225c5876f3e5e919d4f6ed0c447ff /c/dataStructure/sorting/insertSort.c |
initialize
Diffstat (limited to 'c/dataStructure/sorting/insertSort.c')
-rwxr-xr-x | c/dataStructure/sorting/insertSort.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/c/dataStructure/sorting/insertSort.c b/c/dataStructure/sorting/insertSort.c new file mode 100755 index 0000000..741f295 --- /dev/null +++ b/c/dataStructure/sorting/insertSort.c @@ -0,0 +1,60 @@ +#include<stdio.h> +#include<stdlib.h> +#include<time.h> + +#define SIZE 10 + +void swap(int * a, int * b) +{ + int tmp = *a; + *a = *b; + *b = tmp; +} + +void generateRandom(int * arr, int n) +{ + time_t sr; + srand(*&sr); + + for(int i = 0; i < n; i++) + arr[i] = rand() % 100; +} + +void print(int * arr, int n) +{ + for(int i = 0; i < n; i++) + printf("%3d",*(arr+i)); + putchar('\n'); +} + +void insertSort(int * arr, int n) +{ + int key, i, j; + + for (i = 1; i < n; i++) + { + key = arr[i]; + j = i - 1; + + while (j >= 0 && key < arr[j]) + { + arr[j+1] = arr[j]; + j--; + } + arr[j+1] = key; + } +} + +int main(void) +{ + int arr[SIZE]; + generateRandom(arr,SIZE); + + print(arr,SIZE); + + insertSort(arr,SIZE); + + print(arr,SIZE); + + return 0; +} |