⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sortcompare.cpp

📁 sortcompare 是很好的软件 会对你有帮助的
💻 CPP
字号:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <sys/timeb.h>
#include <map>
#include <algorithm>
#pragma warning(disable:4786)
#define BEFORESORTFILE "bfile.txt"
#define AFTERSORTFILE "afile.txt"
#define BUFFERSIZE 128
using namespace std;

void StlSort(int *pNum,long Num);
void InsertSort(int *pNum,long Num);
void WriteToFile(char* FileName,int *pNum,long Num);

int main(int argc,char *argv[])
{
	long RandNum;  //产生的随机数个数
	int *pNum;  //随机数存储指针
	RandNum=atol(argv[1]);	
	if(RandNum==0)
	{
		printf("输入有错误\n");
		return 0;
	}
	pNum=(int *)malloc((RandNum+1)*sizeof(int));
	srand((unsigned)time(NULL));
	int i;
	for(i=1;i<=RandNum;i++)
	{
		pNum[i]=rand();
	}
	//排序前结果写入文件
	WriteToFile(BEFORESORTFILE,pNum,RandNum);
	//记录排序时间
	timeb StartTime,EndTime;		
	ftime(&StartTime);

	InsertSort(pNum,RandNum);
	
	ftime(&EndTime);
	printf("耗时:%d(毫秒)",EndTime.time*1000-StartTime.time*1000+EndTime.millitm-StartTime.millitm);
	//排序后结果写入文件
	WriteToFile(AFTERSORTFILE,pNum,RandNum);
	return 1;
}

void InsertSort(int *pNum,long Num)
{
	for(int i=2;i<=Num;i++)
		if(pNum[i]<pNum[i-1])
		{
			pNum[0]=pNum[i];
			pNum[i]=pNum[i-1];
			for(int j=i-2;pNum[0]<pNum[j];--j)
				pNum[j+1]=pNum[j];
			pNum[j+1]=pNum[0];
		}	
}

void StlSort(int *pNum,long Num)
{
	multimap <int,int> GMap;
	int i;
	for(i=1;i<=Num;i++)
		GMap.insert(multimap <int,int>::value_type(pNum[i],pNum[i]));
	multimap <int,int>::iterator itorGMap;
	itorGMap=GMap.begin();
	for(i=1;i<=Num;i++)
	{
		pNum[i]=itorGMap->first;
		itorGMap++;
	}
}

void WriteToFile(char* FileName,int *pNum,long Num)
{
	FILE *fp;
	fp=fopen(FileName,"w");
	if(fp==NULL)
	{
		printf("建立文件失败");
		exit(0);
	}
	for(int i=1;i<=Num;i++)
	{
		char buffer[BUFFERSIZE];
		itoa(pNum[i],buffer,10);
		int len;
		len=strlen(buffer);
		buffer[len++]='\n';
		fwrite(buffer,sizeof(char),len,fp);
	}
	fclose(fp);
}




















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -