- //
- // main.c
- // Assignment2
- //
- // Created by apple on 15-4-24.
- // Copyright (c) 2015年 __MyCompanyName__. All rights reserved.
- //
- #include <stdio.h>
- #include <time.h>
- #define N 10000
- /* 函数原型 */
- void InsertSort(int v[], int n);
- double SortTime(int v[], int n);
- int main(int argc, const char * argv[])
- {
- int v[N];
- /* 初始化数组 */
- for (int i = 0; i < N; i++) {
- v[i] = N - i;
- }
- printf(" N|");
- printf(" Time(msec)\\n");
- printf("-------------------\\n");
- for (int i = 10, j = 0; i <= 10000; (j % 3 == 0) ? (i *= 2.5)
- : (i *= 2)){
- j++;
- printf("%5d |", i);
- printf(" %5.2lf\\n", SortTime(v, i));
- }
- return 0;
- }
- /*
- * 函数:InsertSort
- * 用法:InsertSort(v, N);
- * ----------------------
- * 函数用插入排序算法对整型数组进行排序。
- */
- void InsertSort(int v[], int n)
- {
- int temp;
- for (int i = 0; i < n; i++) {
- for (int j = i + 1; j > 0; j--) {
- if (v[j] < v[j - 1]) {
- temp = v[j];
- v[j] = v[j - 1];
- v[j - 1] = temp;
- }
- }
- }
- }
- /*
- * 函数:SortTime
- * 用法:SortTime(v, n);
- * --------------------
- * 函数测试有n个元素的数组用插入排序算法排序所用的时间。
- */
- double SortTime(int v[], int n)
- {
- double start, end;
- start = (double)clock()/CLOCKS_PER_SEC;
- for (int i = 0; i < 1000; i++) {
- InsertSort(v, n);
- }
- end = (double)clock()/CLOCKS_PER_SEC;
- return (end - start);
- }
- //该片段来自于http://www.codesnippet.cn/detail/1206201512854.html
来源: http://www.codesnippet.cn/detail/1206201512854.html