c言語でバブルソートの練習
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <limits.h> void init(){ srand(time(NULL)); } double getRandomDouble(){ return 1.0 * rand() / INT_MAX; } void resetArray(int *a, int size){ for(int i=0; i<size; i++){ a[i] = 0; } } int getRandomInt(int min, int max){ double d = getRandomDouble(); int randomOffset = (int)(d * (max - min + 1)); int randomInt = min + randomOffset; return randomInt; } void dispArrayList(int *a, int size){ for(int i=0; i<size; i++){ printf("[%d] : %d\n", i, a[i]); } } void dispArrayLine(int *a, int size){ for(int i=0; i<size; i++){ printf("%d", a[i]); if(i < size-1){ printf(" "); }else{ printf("\n"); } } } void setRandomForArray(int *a, int size, int min, int max){ for(int i=0; i<size; i++){ a[i] = getRandomInt(min, max); } } void swap(int *a, int l, int r){ int t = a[l]; a[l] = a[r]; a[r]= t; } void bubblesort(int *a, int size){ for(int i=0; i<size-1; i++){ for(int j=i+1; j<size; j++){ if(a[i]>a[j]){ swap(a, i, j); } } } } int isSorted(int *a, int size){ for(int i=0; i<size-1; i++){ if(a[i+1] < a[i]){ return 0; } } return 1; } int main(){ init(); int size = 20; int a[size]; setRandomForArray(a, size, 0, 9); dispArrayLine(a, size); bubblesort(a, size); dispArrayLine(a, size); } |