//排序就是无序的数据按照有序的排列出来
介绍一种入门的排序冒泡排序
//因为比如是10个数我大方向只要排9次就好因为第10次一定已经排好
因为我排一次最后面的数是最大或者最小,所以我只要排到它当前位置的前一个就好所以for(int j = 0; j < MAX - i - 1; j++)
for(int i = 0; i < MAX - 1; i++) { for(int j = 0; j < MAX - i - 1; j++) { if(arr[j] > arr[j + 1]) { int temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; } } }
# include <stdio.h> # include <stdlib.h> # include <time.h> # include <string.h> # include <sys/timeb.h> # define MAX 10000 int main(int argc, char *argv[]) { int arr[MAX]; srand((unsigned int) time(NULL)); for(int i = 0; i < MAX; i++) { arr[i] = rand() % 100; } printf("排序前\n"); /* for(int i = 0; i < MAX; i++) { printf("%d ", arr[i]); } printf("\n"); */ clock_t t_Start = clock(); for(int i = 0; i < MAX - 1; i++) { for(int j = 0; j < MAX - i - 1; j++) { if(arr[j] > arr[j + 1]) { int temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; } } } clock_t t_End = clock(); /* for(int i = 0; i < MAX; i++) { printf("%d ", arr[i]); } */ printf("冒泡排序%d个元素,所需时间%ld", MAX, t_End - t_Start); printf("\n"); return 0; }