这次读取的就是上一篇中的original文件的每一行到一个整数数组中。
使用getline(缺省吧回车符endl作为行标记)分别把每一行读入到一个字符串数组,在这个字符数字最后加上/0构成一个字符串;
使用strtok函数把每行组成的字符串以空格为标记划分多个单元返回为一个char*类型值pchTok;
然后把pchTok使用atoi转化为int类型每个存入到一个整型数组的每个单元中sortArray[i]中;
之后把数组使用堆排序算法排序后按照对齐格式输出到另外一个文本中。void heapSort_Write()中。
为了使用字符串函数要包含string.h;为了使用setw要包含iomanip.h。
#include "heapSort.h"
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
using namespace std;
#define ARRAY_SIZE 1000
int heapcount = 0;//记录总共的比较次数
void FixHeap(int L[], int Hsize, int root, int k){
//int larger = 0;
if((2 * (root + 1)) > Hsize)//叶子节点
L[root] = k;
else{
int larger = 0;
if((2*(root + 1)) == Hsize)//只有左子树
larger = 2 * root + 1;
e