<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Directory%3ADerek_Elder%2FPrograms%2FBinaryFileStatesSorted</id>
	<title>Directory:Derek Elder/Programs/BinaryFileStatesSorted - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Directory%3ADerek_Elder%2FPrograms%2FBinaryFileStatesSorted"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Directory:Derek_Elder/Programs/BinaryFileStatesSorted&amp;action=history"/>
	<updated>2026-06-18T02:10:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Directory:Derek_Elder/Programs/BinaryFileStatesSorted&amp;diff=51714&amp;oldid=prev</id>
		<title>Derek Elder: Start of page</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Directory:Derek_Elder/Programs/BinaryFileStatesSorted&amp;diff=51714&amp;oldid=prev"/>
		<updated>2007-12-18T00:48:21Z</updated>

		<summary type="html">&lt;p&gt;Start of page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;iomanip&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
struct stateInfo&lt;br /&gt;
{&lt;br /&gt;
	char name[15];&lt;br /&gt;
	int population;&lt;br /&gt;
	int area;&lt;br /&gt;
	int year;&lt;br /&gt;
	int order;&lt;br /&gt;
	char capital[15];&lt;br /&gt;
	char abbrev[3];&lt;br /&gt;
	int zip;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
const int STRUC_SIZE = sizeof(stateInfo);&lt;br /&gt;
const int MAX = 50;&lt;br /&gt;
typedef stateInfo stateList[MAX];&lt;br /&gt;
&lt;br /&gt;
void LoadData(stateList, ifstream&amp;amp; Input, int&amp;amp; numStates);&lt;br /&gt;
//Purpose:To load data from the binary file.&lt;br /&gt;
//Precondition:None&lt;br /&gt;
//Postcondition:Array of structs contains data.&lt;br /&gt;
int Split(stateList list, int First, int Last);&lt;br /&gt;
//Purpose:Modulation for Quicksort.&lt;br /&gt;
//Precondition:Called in Quicksort.&lt;br /&gt;
//Postcondition:Data split for Quicksort.&lt;br /&gt;
void QuickSort(stateList, int First, int Last);&lt;br /&gt;
//Purpose:To sort data in increasing order based upon name.&lt;br /&gt;
//Precondition:Array of structs contains data.&lt;br /&gt;
//Postcondition:Array of structs sorted properly.&lt;br /&gt;
void SelectionSort(stateList, int numStates);&lt;br /&gt;
//Purpose:To sort data in decreasing order based upon population.&lt;br /&gt;
//Precondition:Array of structs contains data.&lt;br /&gt;
//Postcondition:Array of structs sorted properly.&lt;br /&gt;
void PrintStates(stateList, ofstream&amp;amp; Output, int numStates);&lt;br /&gt;
//Purpose:To print data to console/output file.&lt;br /&gt;
//Precondition:None&lt;br /&gt;
//Postcondition:Data printed to console/output file.&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
	ifstream Input;&lt;br /&gt;
	ofstream Output;&lt;br /&gt;
	stateList States;&lt;br /&gt;
	int numStates = 0;&lt;br /&gt;
&lt;br /&gt;
	Input.open(&amp;quot;States.dat&amp;quot;, ::ios.binary);&lt;br /&gt;
	Output.open(&amp;quot;Output.txt&amp;quot;);&lt;br /&gt;
	LoadData(States, Input, numStates);&lt;br /&gt;
&lt;br /&gt;
	Output&amp;lt;&amp;lt;endl&amp;lt;&amp;lt;&amp;quot;-------------------------SelectionSort-------------------------&amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;
	cout&amp;lt;&amp;lt;endl&amp;lt;&amp;lt;&amp;quot;-------------------------SelectionSort-------------------------&amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;
	SelectionSort(States, numStates);&lt;br /&gt;
	PrintStates(States, Output, numStates);&lt;br /&gt;
&lt;br /&gt;
	cout&amp;lt;&amp;lt;endl&amp;lt;&amp;lt;&amp;quot;QuickSort data will now be displayed.&amp;quot;;&lt;br /&gt;
	cin.get();&lt;br /&gt;
&lt;br /&gt;
	Output&amp;lt;&amp;lt;endl&amp;lt;&amp;lt;&amp;quot;---------------------------QuickSort---------------------------&amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;
	cout&amp;lt;&amp;lt;endl&amp;lt;&amp;lt;&amp;quot;---------------------------QuickSort---------------------------&amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;
	QuickSort(States, 0, (numStates - 1));&lt;br /&gt;
	PrintStates(States, Output, numStates);&lt;br /&gt;
&lt;br /&gt;
	Output.close();&lt;br /&gt;
	cout&amp;lt;&amp;lt;endl&amp;lt;&amp;lt;&amp;quot;Program terminated.&amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;
}&lt;br /&gt;
void LoadData(stateList States, ifstream&amp;amp; Input, int&amp;amp; numStates)&lt;br /&gt;
{&lt;br /&gt;
	int i;&lt;br /&gt;
	string junk;&lt;br /&gt;
	stateInfo TempInfo;&lt;br /&gt;
&lt;br /&gt;
	for(i = 0; i &amp;lt; MAX; i++)&lt;br /&gt;
	{&lt;br /&gt;
		Input.read((char *)&amp;amp;TempInfo,STRUC_SIZE);&lt;br /&gt;
		if(Input.eof())&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		States[i] = TempInfo;&lt;br /&gt;
	}&lt;br /&gt;
	Input.close();&lt;br /&gt;
	numStates = i;&lt;br /&gt;
	cout&amp;lt;&amp;lt;numStates&amp;lt;&amp;lt;&amp;quot; states loaded.&amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;
}&lt;br /&gt;
void PrintStates(stateList States, ofstream&amp;amp; Output, int numStates)&lt;br /&gt;
{&lt;br /&gt;
	cout&amp;lt;&amp;lt;&amp;quot;Name             Pop     Area  Year Order Capital  Abbrev Zip&amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;
	cout&amp;lt;&amp;lt;&amp;quot;---------------------------------------------------------------&amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;
&lt;br /&gt;
	for(int i = 0; i &amp;lt; numStates; i++)&lt;br /&gt;
	{&lt;br /&gt;
		cout&amp;lt;&amp;lt;setw(14)&amp;lt;&amp;lt;States[i].name&amp;lt;&amp;lt;setw(10)&amp;lt;&amp;lt;States[i].population&amp;lt;&amp;lt;setw(7)&amp;lt;&amp;lt;States[i].area&amp;lt;&amp;lt;setw(5)&amp;lt;&amp;lt;States[i].year&lt;br /&gt;
		    &amp;lt;&amp;lt;setw(3)&amp;lt;&amp;lt;States[i].order&amp;lt;&amp;lt;setw(15)&amp;lt;&amp;lt;States[i].capital&amp;lt;&amp;lt;setw(3)&amp;lt;&amp;lt;States[i].abbrev&amp;lt;&amp;lt;setw(6)&amp;lt;&amp;lt;States[i].zip&amp;lt;&amp;lt;endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/*Output&amp;lt;&amp;lt;&amp;quot;Name             Pop     Area  Year Order Capital  Abbrev Zip&amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;
	Output&amp;lt;&amp;lt;&amp;quot;-----------------------------------------------------------------------------&amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;
&lt;br /&gt;
	for(int i = 0; i &amp;lt; numStates; i++)&lt;br /&gt;
	{&lt;br /&gt;
		Output&amp;lt;&amp;lt;setw(14)&amp;lt;&amp;lt;States[i].name&amp;lt;&amp;lt;setw(10)&amp;lt;&amp;lt;States[i].population&amp;lt;&amp;lt;setw(7)&amp;lt;&amp;lt;States[i].area&amp;lt;&amp;lt;setw(5)&amp;lt;&amp;lt;States[i].year&lt;br /&gt;
		    &amp;lt;&amp;lt;setw(3)&amp;lt;&amp;lt;States[i].order&amp;lt;&amp;lt;setw(15)&amp;lt;&amp;lt;States[i].capital&amp;lt;&amp;lt;setw(3)&amp;lt;&amp;lt;States[i].abbrev&amp;lt;&amp;lt;setw(6)&amp;lt;&amp;lt;States[i].zip&amp;lt;&amp;lt;endl;&lt;br /&gt;
	}*/&lt;br /&gt;
}&lt;br /&gt;
int Split(stateList list, int First, int Last)&lt;br /&gt;
{&lt;br /&gt;
	stateInfo SplitVal;&lt;br /&gt;
	SplitVal = list[First];&lt;br /&gt;
&lt;br /&gt;
	while(First &amp;lt; Last)&lt;br /&gt;
	{&lt;br /&gt;
		while(strcmp(SplitVal.name,list[Last].name) &amp;lt; 0 &amp;amp;&amp;amp; First &amp;lt; Last)&lt;br /&gt;
			Last--;&lt;br /&gt;
		if(First &amp;lt; Last)&lt;br /&gt;
		{&lt;br /&gt;
			list[First] = list[Last];&lt;br /&gt;
			First++;&lt;br /&gt;
			while(strcmp(SplitVal.name,list[First].name) &amp;gt; 0 &amp;amp;&amp;amp; First &amp;lt; Last)&lt;br /&gt;
				First++;&lt;br /&gt;
			if(First &amp;lt; Last)&lt;br /&gt;
			{&lt;br /&gt;
				list[Last] = list[First];&lt;br /&gt;
				Last--;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	list[Last] = SplitVal;&lt;br /&gt;
	return First;&lt;br /&gt;
}&lt;br /&gt;
void QuickSort(stateList list, int First, int Last)&lt;br /&gt;
{&lt;br /&gt;
	int SplitPoint;&lt;br /&gt;
&lt;br /&gt;
	if(First &amp;lt; Last)&lt;br /&gt;
	{&lt;br /&gt;
		SplitPoint = Split(list, First, Last);&lt;br /&gt;
		QuickSort(list, First, SplitPoint - 1);&lt;br /&gt;
		QuickSort(list, SplitPoint + 1, Last);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
void SelectionSort(stateList list, int numStates)&lt;br /&gt;
{&lt;br /&gt;
	int lowIndex;&lt;br /&gt;
	stateInfo temp;&lt;br /&gt;
&lt;br /&gt;
	for(int i = 0; i &amp;lt; numStates - 1; i++)&lt;br /&gt;
	{&lt;br /&gt;
		lowIndex = i;&lt;br /&gt;
		for(int j = i + 1; j &amp;lt; numStates; j++)&lt;br /&gt;
			if(list[j].population &amp;gt; list[lowIndex].population)&lt;br /&gt;
				lowIndex = j;&lt;br /&gt;
		if(lowIndex != i)&lt;br /&gt;
		{&lt;br /&gt;
			temp = list[lowIndex];&lt;br /&gt;
			list[lowIndex] = list[i];&lt;br /&gt;
			list[i] = temp;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek Elder</name></author>
	</entry>
</feed>