#include <iostream> #include <ctime> #include <cstdlib> #define random(x) rand()%x #define MAX_LENGTH 10000 void printArr(int *arr, int len) { for(int i = 0; i < len; i++) { std::cout<< arr[i]; } std::cout<<std::endl; } //插入排序 void InsertionSort(int *array, int number_of_elements) { int iter, jter; for(iter = 1; iter < number_of_elements; iter++) { int current_element = array[iter]; jter = iter - 1; while(jter >= 0 && array[jter] > current_element) { array[jter+1] = array[jter]; jter--; } array[jter+1] = current_element; } } //快速排序 void QuickSort(int *arr, int from, int to) { if(from >= to) { return; } int pivot = arr[from]; int i = from, j, temp; for(j = from + 1; j <= to; j++) { if(arr[j] < pivot) { i = i + 1; temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } temp = arr[i]; arr[i] = arr[from]; arr[from] = temp; QuickSort(arr, from, i - 1); QuickSort(arr, i + 1, to); } int main(void) { double start, finish, duration; int arr[MAX_LENGTH]; srand(time(NULL)); for(int i = 0; i < MAX_LENGTH; i++) { arr[i] = random(10); } start = clock(); //QuickSort(arr, 0, MAX_LENGTH - 1); //用时0.024秒 InsertionSort(arr, MAX_LENGTH); // 用时0.116秒 finish = clock(); duration = (double)(finish - start) / CLOCKS_PER_SEC; std::cout<< duration << std::endl; //printArr(arr, MAX_LENGTH); return 0; }