public static void Test_File_Array_List(int seed) { int n = 10; string filename; filename = @"mydataarraytest.txt"; //filename = @"mydataarray.dat"; MyFileArray myfilearray = new MyFileArray(filename, n); using (myfilearray.fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite)) { Console.WriteLine("\n FILE ARRAY \n"); myfilearray.Print(n); Radix_Sort(myfilearray); myfilearray.Print(n); } filename = @"mydatalisttest.txt"; MyFileList myfilelist = new MyFileList(filename, n); using (myfilelist.fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite)) { Console.WriteLine("\n FILE LIST \n"); myfilelist.Print(n); Radix_Sort(myfilelist, seed); myfilelist.Print(n); } }
public static void Test_Array_Radix_Sort_File(int n) { string filename; filename = @"mydataarray.dat"; MyFileArray myfilearray = new MyFileArray(filename, n); using (myfilearray.fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite)) { var watch = System.Diagnostics.Stopwatch.StartNew(); Radix_Sort(myfilearray); watch.Stop(); Console.WriteLine(string.Format("{0, -10} {1, -10}", n, watch.Elapsed.TotalMilliseconds)); } }
public static void Counting_Sort(DataArray items, int exp) { string resultsFile = "results.txt"; string countFile = "count.txt"; int n = items.Length; MyFileArray results = new MyFileArray(n, resultsFile); MyFileArray count = new MyFileArray(10, countFile); using (count.fs = new FileStream(countFile, FileMode.Open, FileAccess.ReadWrite)) { using (results.fs = new FileStream(resultsFile, FileMode.Open, FileAccess.ReadWrite)) { int value; for (int i = 0; i < n; i++) { value = items[i] / exp % 10; count[value] = count[value] + 1; } for (int i = 1; i < 10; i++) { count[i] = count[i] + count[i - 1]; } for (int i = n - 1; i >= 0; i--) { value = items[i] / exp % 10; results[count[value] - 1] = items[i]; count[value] = count[value] - 1; } for (int i = 0; i < n; i++) { items[i] = results[i]; } } } }