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

📄 file.cpp

📁 各种内部排序算法的实现和比较
💻 CPP
字号:
#include "base.h"
#include "fstream.h"

void ReadFile(SqList &L,char *p)
{//将文件p中的数据放入顺序表L中
	fstream File;
	int i;

	File.open(p,ios::in);
		if (!File){
			cout<<"\t\t\t\t文件打开失败!"<<endl;
			exit(0);
		}
	for(i=0;i<MAXSIZE;i++)
	{
		File>>L.r[i+1].key;
		L.length++;	
	}
	File.close();
}

void ReadFile(SLinkListType &SL,char *p)
{//将p中的数据放入静态链表SL中
	fstream File;
	int i;

	File.open(p,ios::in);
		if (!File){
			cout<<"\t\t\t\t文件打开失败!"<<endl;
			exit(0);
		}
	for(i=0;i<SIZE;i++)
	{
		File>>SL.r[i+1].rc;
		SL.length++;	
	}
	File.close();
}

void ReadFile(RedType D[],int &length,char *p)
{//将文件p中的数据放入数组D中
	fstream File;
	int i;

	File.open(p,ios::in);
		if (!File){
			cout<<"\t\t\t\t文件打开失败!"<<endl;
			exit(0);
		}
	for(i=0;i<MAX_SPACE;i++)
	{
		File>>D[i].key;
		length++;
	}
	File.close();
}

void WriteFile(SqList L,char *q)
{//将顺序表L中数据写入文件q中
	fstream File;
	int i;

	File.open(q,ios::out);
		if (!File){
			cout<<"\t\t\t\t文件打开失败!"<<endl;
			exit(0);
		}

	for(i=1;i<MAXSIZE+1;i++)
	{
		File<<setw(8)<<L.r[i].key;
	}
	File.close();
}

void WriteFile(SLinkListType SL,char *q)
{//将静态链表SL中数据写入文件q中
	fstream File;
	int i;

	File.open(q,ios::out);
		if (!File){
			cout<<"\t\t\t\t文件打开失败!"<<endl;
			exit(0);
		}

	for(i=1;i<SIZE+1;i++)
	{
		File<<setw(8)<<SL.r[i].rc;
	}
	File.close();
}

void WriteFile(SLList SLL,char *q)
{//将静态链表SLL中数据写入文件q中
	fstream File;
	int i,j;
	char c=' ';

	File.open(q,ios::out);
		if (!File){
			cout<<"\t\t\t\t文件打开失败!"<<endl;
			exit(0);
		}

	i=SLL.r[0].next;
	j=0;
	while(i)
	{
		for(j=SLL.keynum-1;j>=0;j--)
			File<<SLL.r[i].keys[j];
		File.put(c);
		File.put(c);
		File.put(c);
		i=SLL.r[i].next;
	}
	File.close();
}

void WriteResult(float t[])
{
	fstream File;

	File.open("Result.txt",ios::out);
	if (!File){
		cout<<"\t\t\t\t文件打开失败!"<<endl;
		exit(0);
	}

	File.precision(6);
	File.setf(ios::fixed|ios::right|ios::showpoint);
	File<<"各种排序用时比较:"<<endl;
	File<<"各种排序均从a.txt~j.txt读取数据进行排序,时间取平均值."<<endl;
	File<<"\n直接插入排序:";
	File.width(10);
	File<<t[1]/10<<" s"<<endl;
	File<<"\n折半插入排序:";
	File.width(10);
	File<<t[2]/10<<" s"<<endl;
	File<<"\n2-路插入排序:";
	File.width(10);
	File<<t[3]/10<<" s"<<endl;
	File<<"\n表插入排序:  ";
	File.width(10);
	File<<t[4]/10<<" s"<<endl;
	File<<"\n希尔排序:    ";
	File.width(10);
	File<<t[5]/10<<" s"<<endl;
	File<<"\n冒泡排序:    ";
	File.width(10);
	File<<t[6]/10<<" s"<<endl;
	File<<"\n快速排序:    ";
	File.width(10);
	File<<t[7]/10<<" s"<<endl;
	File<<"\n简单选择排序:";
	File.width(10);
	File<<t[8]/10<<" s"<<endl;
	File<<"\n堆排序:      ";
	File.width(10);
	File<<t[9]/10<<" s"<<endl;
	File<<"\n归并排序:    ";
	File.width(10);
	File<<t[10]/10<<" s"<<endl;
	File<<"\n基数排序:    ";
	File.width(10);
	File<<t[11]/10<<" s"<<endl;

	File.close();
}

⌨️ 快捷键说明

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