﻿ 数据布局进修(C++)之排序_天才写手 -代写CS作业_CS代写_Finance代写_Economic代写_Statistics代写_代写代码_作业代写_加急帮助
##### 当前位置 |首页 > 代写教程 > C语言/C++ 教程 >

```#include <iostream> #include <iomanip> using namespace std; #include <stdlib.h> #include <time.h> #include <math.h> #include "InsertSort.h" #define random(num) (rand() % (num)) #define randomize() srand((unsigned)time(NULL)) #define N 10000 //排序元素的数目 #define SORT InsertSort //排序要领 class timer//单元ms { public: void start() { start_t = clock(); } clock_t time() { return (clock() - start_t); } private: clock_t start_t; }; int KCN, RMN; timer TIMER; void test(int a[]) { TIMER.start(); SORT<int>(a, N, KCN, RMN); cout << "\tTimeSpared: " << TIMER.time() << "ms" << endl; cout << "KCN=" << left << setw(11) << KCN; cout << "KCN/N=" << left << setw(11)<< (double)KCN/N; cout << "KCN/N^2=" << left << setw(11)<< (double)KCN/N/N; cout << "KCN/NlogN=" << left << setw(11)<< (double)KCN/N/log((double)N)*log(2.0) << endl; cout << "RMN=" << left << setw(11) << RMN; cout << "RMN/N=" << left << setw(11)<< (double)RMN/N; cout << "RMN/N^2=" << left << setw(11)<< (double)RMN/N/N; cout << "RMN/NlogN=" << left << setw(11)<< (double)RMN/N/log((double)N)*log(2.0) << endl; } int main() { int i; //randomize();为了在沟通环境下较量各个排序算法，不加这句 int* ascending = new int[N];//升序序列 int* descending = new int[N];//降序序列 int* randomness = new int[N];//随机序列 for (i = 0; i < N; i++) { ascending[i] = i; randomness[i] = i; descending[i] = N - i - 1;} for (i = 0; i < N; i++) swap(randomness[i], randomness[random(N)]); cout << "Sort ascending N=" << N; test(ascending); cout << "Sort randomness N=" << N; test(randomness); cout << "Sort descending N=" << N; test(descending); return 0; }```