今天没事想试一下新接触的编译器,就写了个排序算法,没想到剧然调了半天,真是不应该,什么东西一丢就忘的很快。现将两个算法写到这里以备忘,可以查阅。 #include <stdio.h> #include <time.h> #include <stdlib.h> #define LENGTH 10 #define MAX_DATA 1000 void printData(int *tmp) { int i; for (i = 0; i < LENGTH; ++i) { printf(" %d", tmp[i]); } } void createData(int *tmp) { int i; for (i = 0; i < LENGTH; ++i) { tmp[i] = rand() % MAX_DATA + 1; } } void insertSort(int *tmp) { int i, j, key; for (j = 1; j < LENGTH; ++j) { key = tmp[j]; i = j - 1; while (i >= 0 && tmp[i] > key) { tmp[i + 1] = tmp[i]; i = i - 1; } tmp[i + 1] = key; } } void bubbleSort(int *tmp) { int i, j, swap; for (i = 0; i < LENGTH; ++i) { for (j = LENGTH - 1; j > i; --j) if (tmp[j] < tmp[j - 1]) { swap = tmp[j]; tmp[j] = tmp[j -1]; tmp[j - 1] = swap; } } } int main(int argc, char *argv[]) { int insert[LENGTH]; int bubble[LENGTH]; srand((unsigned) time(0)); printf("Insert Sort/nPRE : "); createData(insert); printData(insert); insertSort(insert); printf("/nPST : "); printData(insert); printf("/nBubble Sort/nPRE : "); createData(bubble); printData(bubble); bubbleSort(bubble); printf("/nPST : "); printData(bubble); return 0; }