1 实 验 报 告实验名称各种内排序算法的实现及性能比较指导教师实验类型设计实验学时2 实验时间一、 实验目的和要求(1)理解和掌握各种排序算法。(2)学会比较排序方法的性能。二、 实验环境 (实验设备 ) 硬件:微型计算机软件: Windows 操作系统、 Microsoft Visual Studio 2015 三、实验原理及内容//改进的快速排序template void QuickSort (T A[] , int n){QSort(A , 0, n - 1); }QuickSort QSort A,0,n-1 A,left,right QSort InsertSort A,j-1 A,n 2 实 验 报 告template void QSort(T A [] ,int left,int right ){int i, j; if (left < right ){i = left; j = right + 1; if (j-i < 10 ) //如果子集合小于10个元素时改用直接插入排序InsertSort(A, j-i ); else {do {do i++; while (A [i] < A [left ]); do j--; while (A [j] > A [left]); if (i < j ) Swap(A[i], A [j]); } while (i < j ); Swap(A[ left] , A[j]); QSort(A , left , j - 1); QSort(A , j + 1, right); }}} //随机数发生器const int N = 1000; template void randomizer(T* a){srand(time(NULL )); for (int i = 0; i < N; i++ )a[i ] = rand() % 10000; } //各内排序时间计算函数template void Showtime (void (*Order)(T A [] , int n),T A[] )3 实 验 报 告{double time; clock_t start, end; cout << "Total time-consuming: "; start = clock (); //开始计时for (int i = 0; i < 1000; i++ ){Order(A, N ); randomizer (A); }end = clock(); //结束计时time = (double)(end - start) / CLOCKS_PER_SEC ; //耗时为两者差值除以clock中每秒的值cout << time << endl; } //main 函数中各内排序算法调用函数计算时间的语句段//简单选择排序时间计算cout << "\nSelectSort:" << endl; Showtime (SelectSort, a); //直接插入排序时间计算cout << "\nInsertSort:" << endl; Showtime (InsertSort, a); //冒泡排序时间计算cout << "\nBubbleSort:" << endl; Showtime (BubbleSort, a ); //快速排序时间计算cout << "\nQuickSort:" << endl; Showtime (QuickSort, a...