def startsort(): global data if not data: return if (selectbox.get() == "Quick Sort"): quickSort(data, 0, len(data) - 1, draw_lines, speed_scale.get()) draw_lines(data, ["sea green"] * len(data)) elif selectbox.get() == "Bubble Sort": bubblesort(data, draw_lines, speed_scale.get(), ["indian red"] * len(data))
def createSonFile(fileCount, tempList, lineCount): quicksort.quickSort(0, (lineCount - 1), tempList) #排序 fileName = 'sonFile' + str(fileCount) + '.csv' with open(fileName, mode='w+', newline='') as file: writer = csv.writer(file) for i in range(lineCount): writer.writerow(tempList[i])
def GF_product_TvsGF_productP(n_runs, b): resultsMedian = [[0.0, 0.0] for y in range(256)] for i in range(256): repetitionsProductT = [] repetitionsProductP = [] for _ in range(n_runs): repetitionsProductT.append(timeForGF_product_T(i, b)) for _ in range(n_runs): repetitionsProductP.append(timeForGF_product_P(i, b)) quick.quickSort(repetitionsProductT) quick.quickSort(repetitionsProductP) med = n_runs // 2 resultsMedian[i][0] = repetitionsProductT[med] resultsMedian[i][1] = repetitionsProductP[med] return resultsMedian
def startSort(): global arr if algoCombo.get() == 'Bubble Sort': bubbleSort(arr, displayArray, sortSpeed.get(), pauseBool) elif algoCombo.get() == 'Selection Sort': selectionSort(arr, displayArray, sortSpeed.get(), pauseBool) elif algoCombo.get() == 'Merge Sort': mergeSort(arr, displayArray, sortSpeed.get(), pauseBool, 0, len(arr) - 1) elif algoCombo.get() == 'Quick Sort': quickSort(arr, displayArray, sortSpeed.get(), pauseBool, 0, len(arr) - 1)
def StartAlgorithm(): global data if algMenu.get() == "Quick sort": quickSort(data, 0, len(data) - 1, drawData, speedScale.get() / 1000) elif algMenu.get() == "Merge sort": mergeSort(data, 0, len(data) - 1, drawData, speedScale.get() / 1000) elif algMenu.get() == "Selection sort": selectSort(data, drawData, speedScale.get() / 1000) elif algMenu.get() == "Radix sort": radixSort(data, drawData, speedScale.get() / 1000) elif algMenu.get() == "Insertion sort": insertSort(data, drawData, speedScale.get() / 1000) elif algMenu.get() == "Bubble sort": bubbleSort(data, drawData, speedScale.get() / 1000) drawData(data, ["limegreen" for _ in range(len(data))])
def fun3(num): file_path = '../phone_dataset/{}/'.format(str(num)) count = 0 num_list = [] prev_name = '' for file in os.listdir(file_path): a,b = file.split('.') c,d = a.split('ms-') num_list.append(d) #os.rename(file_path+file,file_path+'frame{}.jpg'.format(count)) count +=1 if count == 1: prev_name = c print(num_list) quicksort.quickSort(num_list) print(num_list) print(c) count = 0 for i in num_list: if int(num_list[count]) <100000: os.rename(file_path+c+'ms-{}.jpg'.format(i),file_path+'frame{}.jpg'.format(count)) count +=1
def fun1(num): file_path = '../phone_dataset/{}/'.format(str(num)) count = 0 file_name = 'e-000' num_list = [] for file in os.listdir(file_path): a,b = file.split('.') c,d = a.split('-') num_list.append(int(d)) #os.rename(file_path+file,file_path+'frame{}.jpg'.format(count)) count +=1 print(num_list) quicksort.quickSort(num_list) print(num_list) count = 0 for i in num_list: if num_list[count] <10: os.rename(file_path+'e-0000{}.jpg'.format(i),file_path+'frame{}.jpg'.format(count)) elif num_list[count] <100: os.rename(file_path+'e-000{}.jpg'.format(i),file_path+'frame{}.jpg'.format(count)) else: os.rename(file_path+'e-00{}.jpg'.format(i),file_path+'frame{}.jpg'.format(count)) count +=1
def create_score(P, name): global page if snakeSize == 40: SaveSize = "Big" elif snakeSize == 20: SaveSize = "Normal" elif snakeSize == 10: SaveSize = "Small" if speed == 20: SaveSpeed = "Slow" elif speed == 10: SaveSpeed = "Normal" elif speed == 5: SaveSpeed = "Fast" Score.S.append([P, name, SaveSpeed, SaveSize]) new = quicksort.quickSort(Score.S, 0, len(Score.S) - 1) file = open('Score.py', 'w') file.write("S = ") file.close() file = open('Score.py', 'a') file.write(str(new)) file.close() page = 0
#This file is just to compile all the feature branches from bubblesort import bubbleSort from mergeSort import mergeSort from quicksort import quickSort testBubble = [3, 10, 40, 20, 30, 4, 1] testMerge = [100, 5, 68, 3, 1, 10] testQuick = [4, 15, 23, 1, 11, 22] bubbleSort(testBubble) print("Here is the the sorted array using bubble sort") print(testBubble) mergeSort(testMerge) print("Here is the sorted array using Merge sort") print(testMerge) quickSort(testQuick, 0, len(testQuick) - 1) print("Here is the sorted array using quick sort") print(testQuick)
def test_1(self): arr = [1, 3, 4, 5, 2, 0] res = quicksort.quickSort(arr) self.assertEqual(res, [0, 1, 2, 3, 4, 5])
def quickSort(alist,first,last): if first<last: splitpoint = partition(alist,first,last) quickSort(alist,first,splitpoint-1) quickSort(alist,splitpoint+1,last)
done = True else: temp = alist[leftmark] alist[leftmark] = alist[rightmark] alist[rightmark] = temp temp = alist[first] alist[first] = alist[rightmark] alist[rightmark] = temp return rightmark alist = [] for x in range(100): alist.append (random.randint(1,10)) s = time.time() quickSort(alist, 0, len(alist)-1) e = time.time() time1 = e-s import time import random def mergeSort(alist): if len(alist)>1:
import quicksort import newmerge print "------quicksort output-------------------" t = [38, 42, 64, 55, 27, 856, 353] s = [38, 42, 64, 55, 27, 856, 353] print "unsorted input" print t print "sorted output" quicksort.quickSort(s) print(s) print "-------Mergesort output------------------" print "unsorted input" print t print "sorted output" newmerge.mergeSort(s, 0, len(s) - 1) for i in range(len(s)): print("%d" % s[i]),
# for line in fp: # arr.append(int(line.strip())) start = time.process_time() bubbleSort(arr) end = time.process_time() elapsed = (end - start) * (10**6) print("Time for Bubblesort:") print("%.3f" % (elapsed)) start = time.process_time() merge_sort(arr) end = time.process_time() elapsed = (end - start) * (10**6) print("Time for Mergesort:") print("%.3f" % (elapsed)) start = time.process_time() quickSort(arr) end = time.process_time() elapsed = (end - start) * (10**6) print("Time for Quicksort:") print("%.3f" % (elapsed)) start = time.process_time() selectionSort(arr) end = time.process_time() elapsed = (end - start) * (10**6) print("Time for Selectionsort:") print("%.3f" % (elapsed))
import random, time from quicksort import quickSort A = list(range(0, 1000000)) random.shuffle(A) start_time = time.time() quickSort(A, 0, len(A) - 1) end_time = time.time() print("{} seconds".format(end_time - start_time))
wierzchołki=raw_input("Wprowadz wierzchołki: ") wierzchołki=wierzchołki.split() lista_wierzchołkow= [(a) for a in wierzchołki] print(lista_wierzchołkow) ilość_krawędzi=raw_input("Wprowadz liczbę krawędzi: ") lista_krawedzi=[] #dodawanie krawedzi for x in range(0,int(ilość_krawędzi)): krawedz= raw_input("Wprowadz 2 wierzchołki krawedzi i wage kazde po spacji nastepnie enter: ") krawedz= krawedz.split() krawedz= [(a) for a in krawedz] lista_krawedzi.append(krawedz) #sortowanie lista_krawedzi=quickSort(lista_krawedzi) print(lista_krawedzi) ##przykladowe dane # lista_wierzchołkow = list( "ABCDEF" ) # lista_krawedzi = [ ("A", "B", 4), ("B", "C", 2), # ("A", "F", 2),("C", "D", 8), # ("F", "D", 6), # ("A", "E", 1),("E", "B", 2), # ("F", "E", 7),("E", "D", 3), # ] ########## print('algorytm kruskala')
def pretretedInputDataInitialCentroidsNear(self,array): quickSort(array) center1=array[int(len(array)/4)] centre2=array[int(len(array)/2)] centre3=array[int(len(array)*3/4)] return center1['array'], centre2['array'], centre3['array']
import time from mergesort import mergeSort from quicksort import quickSort import random difference = [] for i in range(1, 10): arr = [] for x in range(1000): arr.append(random.randint(1, 1000)) s = time.time() quickSort(arr, 0, len(arr) - 1) e = time.time() time1 = e - s s = time.time() mergeSort(arr) e = time.time() time2 = e - s difference.append(time2 - time1) print(i, "quickSort: ", time1, "mergeSort: ", time2) print("The average difference in running time is: ", sum(difference) / len(difference))
from quicksort import quickSort num_elements = 20000 # lunghezza della lista da ordinare unaLista = [] # generiamo una lista di 10000 interi a caso for i in range(num_elements): unaLista.append(rnd.randint(1, 100000)) start = time.time() # segna il tempo di inizio nella variabile start insertionSort(unaLista) stop = time.time() # segna il tempo di fine nella variabile start print('Insertion sort per', stop - start, "secondi.") unaLista = [] for i in range(num_elements): unaLista.append(rnd.randint(1, 100000)) start = time.time() # segna il tempo di inizio nella variabile start quickSort(unaLista) stop = time.time() # segna il tempo di fine nella variabile start print('Quick Sort per', stop - start, "secondi.") unaLista = [] for i in range(num_elements): unaLista.append(rnd.randint(1, 100000)) start = time.time() # segna il tempo di inizio nella variabile start sorted(unaLista) stop = time.time() # segna il tempo di fine nella variabile start print('Merge Sort per', stop - start, "secondi.")
if item1 < item2: out.append(item1) point1 += 1 elif item2 < item1: out.append(item2) point2 += 1 else: out.append(item1) point1 += 1 point2 += 2 if point1 == len(in1): out += in2[-(len(in2) - point2):] elif point2 == len(in2): out += in1[-(len(in1) - point1):] return out #in1 = input("First data list: ").split(", ") #in2 = input("Second data list: ").split(", ") in1 = ['apple','pomegranite','damson','plum','banana'] in2 = ['dog','frog','sheep','pig','leopard','lion','cheetah','steve'] in1 = quickSort(in1, 0, len(in1) - 1) in2 = quickSort(in2, 0, len(in2) - 1) print(in1) print(in2) print(mergeSort(in1, in2))
print '\033[94m Generating random initial solutions... \033[0m' paths = alg.initialRandomSolutions(starting_point, objectives) max_generations = 25000 # We should better wait for convergence for p in range(len(paths)): paths[p].fitness = alg.fitness(paths[p].points, occ_grid) max_p = max(paths, key=lambda x:x.fitness) max_f = 0 count = 0 for i in range(max_generations): quickSort(paths) if max_f < paths[0].fitness: max_f = paths[0].fitness count = 0 print '\033[94m Current maximum fitness:\033[0m\033[92m ' + str(max_f) + '\033[0m\033[94m, Generation:\033[0m\033[92m ' + str(i) +' \033[0m' else: count += 1 if count >= 2000: # Looks like the algorithm converged (or won't ever converge!) break p1 = alg.tournament_selection(paths) p2 = alg.tournament_selection(paths) new_path = [] # Always crossover (cr = 1)
import quicksort import shellsort import numpy as np import time list1 = np.random.rand(100000) list2 = np.random.rand(100000) t = time.time() quicksort.quickSort(list2, 0, 100000 - 1) print(time.time() - t) t = time.time() shellsort.shellSort(list1) print(time.time() - t)
972, 527, 779, 954, 551, 511, 26, 125, 658, 686, 275, 585, 297, 61, 594, 402, 97, 432, 717, 276, 176, 271, 397, 698, 749, 652, 92, 999, 214, 418, 790, 815, 548, 596, 650, 188, 346, 250, 586, 382, 94, 894, 124, 16, 342, 302, 357, 408, 134, 351, 245, 918, 145, 653, 168, 540, 196, 974, 56, 942, 436, 948, 986, 324, 238, 844, 526, 595, 207, 542, 975, 831, 24, 763, 117, 920, 343, 514, 415, 210, 720, 781, 303, 226, 105, 834, 193, 465, 973, 648, 926, 633, 62, 221, 962, 228, 833, 251, 978, 715, 452, 45, 74, 30, 758, 805, 803, 383, 101, 347, 576, 632, 291, 898, 569, 798, 716, 433, 209, 473, 316, 386, 15, 562, 792, 991, 626 ] # 1,250 samples (To many, Broke) # DataSet = [941, 1490, 34, 1080, 1157, 1029, 1488, 828, 613, 1210, 485, 341, 1382, 548, 1011, 568, 980, 1173, 283, 338, 896, 575, 472, 1354, 376, 1391, 987, 975, 1097, 402, 1496, 845, 621, 30, 541, 768, 211, 667, 419, 997, 570, 67, 1313, 887, 244, 836, 852, 1236, 567, 861, 702, 288, 266, 223, 462, 156, 609, 1155, 1398, 878, 1107, 708, 1167, 1338, 841, 194, 551, 1306, 1115, 871, 371, 260, 213, 23, 1079, 1356, 743, 590, 930, 498, 396, 372, 783, 699, 1355, 1245, 1466, 1110, 521, 953, 33, 598, 629, 517, 154, 1290, 1272, 291, 47, 815, 1473, 72, 1194, 1131, 1342, 1095, 256, 292, 168, 1156, 893, 295, 1211, 658, 961, 1324, 346, 477, 1394, 958, 1172, 1500, 687, 504, 518, 167, 1334, 296, 133, 1195, 519, 342, 378, 584, 185, 123, 114, 533, 832, 1242, 976, 734, 1393, 370, 1111, 474, 1312, 1444, 555, 527, 1062, 793, 686, 1359, 271, 503, 1091, 1371, 1474, 326, 1002, 895, 379, 236, 60, 904, 1179, 791, 332, 1069, 1040, 1149, 38, 377, 353, 487, 957, 257, 1468, 491, 1133, 990, 11, 1206, 95, 466, 1130, 207, 20, 1351, 725, 1275, 1385, 1380, 700, 75, 863, 642, 421, 1284, 1402, 817, 631, 248, 1343, 637, 563, 894, 949, 218, 709, 1076, 1022, 362, 1291, 1087, 689, 170, 1274, 240, 781, 1218, 792, 147, 42, 1387, 1153, 902, 1323, 206, 770, 1460, 96, 1212, 1041, 635, 977, 448, 799, 368, 755, 1374, 145, 1213, 705, 1358, 141, 764, 713, 90, 502, 363, 858, 269, 126, 826, 1051, 656, 706, 844, 1243, 1, 50, 712, 862, 1436, 813, 912, 1201, 343, 327, 516, 351, 380, 1409, 829, 1431, 45, 988, 1445, 830, 391, 1121, 263, 55, 754, 1178, 27, 1423, 993, 110, 79, 1476, 410, 469, 803, 750, 104, 939, 65, 633, 865, 731, 1057, 1158, 405, 450, 1353, 1202, 329, 611, 1008, 559, 1367, 1455, 146, 286, 105, 1246, 86, 461, 1010, 1090, 148, 385, 956, 1073, 1100, 1384, 719, 1112, 735, 348, 747, 125, 790, 937, 1294, 489, 190, 1085, 606, 1376, 671, 193, 1438, 16, 1048, 1268, 617, 900, 1400, 909, 872, 903, 1255, 13, 468, 116, 82, 1463, 925, 300, 850, 1276, 923, 1220, 1349, 880, 273, 442, 1397, 1270, 1310, 856, 1307, 869, 599, 864, 253, 514, 74, 1136, 703, 1174, 31, 311, 324, 303, 639, 369, 280, 707, 14, 386, 245, 540, 834, 318, 121, 1401, 1148, 1239, 1118, 1317, 931, 1023, 582, 1392, 1469, 970, 796, 1106, 918, 97, 175, 690, 881, 397, 1258, 701, 1188, 753, 270, 198, 1298, 1410, 1389, 554, 840, 1492, 381, 1267, 766, 158, 1144, 866, 804, 1458, 955, 8, 1470, 562, 107, 9, 464, 645, 1362, 1052, 1451, 58, 1054, 698, 6, 726, 282, 408, 84, 839, 718, 1231, 1176, 973, 910, 868, 139, 587, 1003, 93, 297, 666, 627, 1028, 225, 328, 933, 888, 943, 137, 1072, 1442, 944, 1145, 622, 1346, 1024, 1364, 52, 490, 429, 1263, 1262, 1184, 603, 860, 71, 927, 335, 438, 512, 481, 187, 618, 979, 1320, 1319, 597, 1021, 1417, 1237, 1125, 758, 1448, 349, 989, 820, 467, 1361, 293, 692, 112, 1297, 192, 586, 1345, 1240, 197, 1259, 1187, 261, 1396, 238, 1369, 738, 986, 226, 299, 670, 710, 471, 655, 181, 1116, 1180, 1203, 1025, 876, 37, 94, 162, 36, 325, 1082, 453, 1475, 691, 83, 441, 1221, 1127, 322, 411, 204, 810, 950, 650, 1163, 428, 628, 1303, 350, 1462, 720, 835, 1478, 473, 819, 1055, 1428, 1182, 315, 1151, 433, 1165, 842, 1420, 1150, 1075, 1315, 1026, 959, 1408, 1363, 1352, 249, 647, 394, 763, 665, 1038, 166, 934, 588, 661, 465, 729, 333, 1119, 1269, 1450, 981, 195, 1227, 159, 88, 623, 132, 1425, 483, 1014, 539, 795, 1429, 615, 677, 965, 1283, 807, 1253, 436, 632, 1335, 1102, 954, 1232, 174, 761, 366, 1162, 1452, 1147, 1443, 232, 316, 875, 1205, 638, 929, 1331, 1241, 151, 877, 1034, 456, 693, 119, 1004, 855, 1059, 837, 809, 529, 1430, 932, 532, 304, 247, 678, 228, 339, 1101, 1250, 800, 526, 778, 1098, 583, 742, 996, 375, 641, 1046, 169, 1000, 561, 674, 1108, 459, 922, 991, 1286, 1419, 507, 177, 78, 1282, 1027, 565, 1332, 913, 373, 1347, 1326, 1058, 1109, 936, 345, 389, 952, 242, 1370, 1215, 336, 749, 822, 945, 35, 118, 129, 630, 29, 1019, 1309, 1226, 525, 757, 853, 178, 600, 849, 317, 340, 69, 28, 161, 347, 1433, 392, 921, 1049, 1141, 420, 1414, 425, 827, 1427, 544, 302, 1064, 1159, 906, 113, 1299, 948, 634, 1316, 1199, 1128, 176, 17, 85, 493, 885, 982, 1390, 911, 66, 106, 445, 210, 203, 415, 646, 619, 1415, 475, 1207, 1372, 305, 673, 688, 657, 463, 40, 733, 874, 739, 401, 289, 1013, 717, 999, 313, 120, 98, 797, 1388, 928, 748, 787, 334, 488, 684, 1084, 1103, 1328, 969, 5, 1497, 1033, 785, 497, 1325, 382, 1464, 201, 1487, 307, 3, 1446, 659, 184, 255, 73, 109, 545, 963, 229, 1314, 730, 234, 407, 752, 1185, 886, 7, 740, 208, 777, 294, 172, 644, 1223, 434, 695, 437, 1257, 1186, 219, 1104, 612, 972, 57, 873, 1365, 352, 143, 596, 595, 974, 19, 1461, 1036, 1482, 564, 653, 1117, 607, 571, 1271, 1418, 191, 546, 1020, 1129, 235, 278, 681, 81, 1277, 48, 572, 704, 1471, 21, 374, 1060, 946, 458, 537, 1168, 482, 1421, 264, 254, 1412, 183, 200, 393, 1330, 494, 940, 723, 241, 140, 287, 942, 1005, 789, 1381, 284, 1077, 1422, 4, 919, 103, 891, 1494, 798, 843, 1288, 357, 136, 102, 859, 1065, 1225, 889, 215, 1341, 89, 160, 1434, 142, 857, 1217, 165, 319, 1068, 1050, 416, 62, 675, 679, 1348, 281, 816, 680, 569, 951, 775, 1042, 454, 173, 992, 1413, 883, 406, 846, 1222, 150, 1114, 528, 935, 626, 1200, 1411, 1289, 1296, 262, 43, 1123, 1233, 452, 1171, 788, 1007, 390, 1183, 501, 76, 364, 1333, 399, 355, 323, 1081, 722, 721, 1254, 535, 417, 447, 479, 1135, 39, 1379, 890, 967, 100, 784, 524, 513, 579, 1405, 439, 926, 1001, 1039, 1190, 767, 899, 806, 715, 1140, 152, 1304, 652, 620, 251, 138, 1375, 1154, 1481, 80, 805, 553, 258, 824, 1368, 205, 831, 901, 573, 1449, 157, 68, 230, 1261, 984, 239, 1302, 966, 669, 431, 202, 1479, 46, 1175, 1447, 1031, 744, 651, 384, 117, 773, 538, 924, 643, 1006, 268, 443, 1017, 101, 1300, 186, 530, 495, 1416, 1169, 398, 277, 199, 155, 566, 321, 1142, 978, 1281, 847, 1406, 774, 732, 217, 24, 801, 1238, 938, 22, 1196, 1373, 1264, 1293, 727, 367, 460, 558, 1209, 1181, 301, 10, 549, 1467, 2, 1350, 823, 435, 724, 625, 1344, 547, 714, 1089, 907, 1318, 838, 593, 594, 737, 908, 1134, 1454, 947, 492, 915, 649, 592, 1477, 1327, 1260, 337, 1063, 1126, 476, 360, 409, 54, 1285, 616, 983, 1336, 1160, 1078, 760, 663, 808, 772, 1056, 1137, 515, 414, 26, 985, 444, 1339, 1047, 780, 92, 736, 359, 917, 265, 250, 387, 962, 1292, 1067, 1234, 854, 510, 1426, 1124, 1216, 1161, 1499, 1139, 762, 870, 1311, 1472, 422, 534, 1228, 290, 1093, 668, 1012, 786, 274, 1086, 1120, 1208, 1244, 496, 214, 361, 1308, 1170, 604, 608, 1197, 581, 542, 577, 683, 1483, 765, 1092, 1164, 237, 1071, 1383, 1099, 115, 1486, 1030, 53, 309, 1424, 41, 1266, 12, 127, 833, 446, 1122, 1278, 189, 427, 164, 605, 331, 1070, 968, 1146, 272, 64, 654, 905, 751, 449, 998, 771, 716, 1360, 108, 196, 697, 898, 1192] BS_StartTime = time.time() bubbleSort(DataSet) BS_EndTime = time.time() MS_StartTime = time.time() mergeSort(DataSet) MS_EndTime = time.time() QS_StartTime = time.time() quickSort(DataSet, 0, len(DataSet) - 1) QS_EndTime = time.time() print('Random Samples sorted: ', len(DataSet)) print('Bubble Sort took ', str(BS_EndTime - BS_StartTime)) print('Merge Sort took ', str(MS_EndTime - MS_StartTime)) print('Quick Sort took ', str(QS_EndTime - QS_StartTime)) # dir_path = os.path.dirname(os.path.realpath(__file__)) # print(dir_path)
import quicksort as qs import bubblesort as bs import selectionsort as ss import numpy import time ls = numpy.random.randint(1000, size=100) # print(ls) print("*******************************************") print("QuickSort ") t1 = time.time() qs.quickSort(ls, asc=True) t2 = time.time() print("Cres: ", (t2 - t1)) t1 = time.time() qs.quickSort(ls, asc=False) t2 = time.time() print("Desc: ", (t2 - t1)) print("*******************************************") print("BubbleSort ") t1 = time.time() bs.bubble_sort(ls, asc=True) t2 = time.time() print("Cres: ", (t2 - t1)) t1 = time.time() bs.bubble_sort(ls, asc=False) t2 = time.time() print("Desc: ", (t2 - t1)) print("*******************************************") print("SelectionSort ")
## # This program demonstrates the quick sort algorithm by sorting a list # that is filled with random numbers. # from random import randint from quicksort import quickSort n = 20 values = [] for i in range(n): values.append(randint(1, 100)) print(values) quickSort(values, 0, n - 1) print(values)
userSelection = input() #Run the selected algorithm if userSelection == '1': startTime = time.time() selectionsort.selectionSort(alist) endTime = time.time() resultsFile.write("You chose Selection sort\n") elif userSelection == '2': startTime = time.time() insertionsort.insertionSort(alist) endTime = time.time() resultsFile.write("You chose Insertion sort\n") elif userSelection == '3': startTime = time.time() alist = quicksort.quickSort(alist) endTime = time.time() resultsFile.write("You chose Quick sort\n") elif userSelection == '4': startTime = time.time() mergesort.mergeSort(alist) endTime = time.time() resultsFile.write("You chose Merge sort\n") elif userSelection == '5': startTime = time.time() heapsort.heapSort(alist) endTime = time.time() resultsFile.write("You chose Heap sort\n") elif userSelection == '6': startTime = time.time() countingsort.countingSort(alist)
def executeAlgos(): # yield 'Starting executeAlgos...\n' shortSize = 10 popSize = shortSize * 10 shortData = random.sample(range(0, popSize), shortSize) # Generate Random data copyShortData = copy.deepcopy(shortData) # Maintain a copy for other algorithms print ("Generated random short data with %d elements\n"%shortSize) print "short data = "+ str(shortData) + "\n" stdout.flush() # yield ("Generated random short data with %d elements"%shortSize) # ------- SMALL DATASETS SORTING -------- # Merge sort : small dataset startTime = datetime.datetime.now() mergeSort(shortData) endTime = datetime.datetime.now() elapsedTime = endTime - startTime print "Merge sorted short data = "+ str(shortData) + " in "+str(elapsedTime)+"\n" stdout.flush() # yield "\nMerge sorted short data = "+ str(shortData) + " in "+str(elapsedTime) # Quick sort : small dataset shortData = copy.deepcopy(copyShortData) startTime = datetime.datetime.now() quickSort(shortData) endTime = datetime.datetime.now() elapsedTime = endTime - startTime print "Quick sorted short data = "+ str(shortData) + " in "+str(elapsedTime) + "\n" stdout.flush() # yield "\nQuick sorted short data = "+ str(shortData) + " in "+str(elapsedTime) # Heap sort : small dataset shortData = copy.deepcopy(copyShortData) startTime = datetime.datetime.now() heapSort(shortData) endTime = datetime.datetime.now() elapsedTime = endTime - startTime print "Heap sorted short data = "+ str(shortData) + " in "+str(elapsedTime) + "\n" stdout.flush() # yield "\nQuick sorted short data = "+ str(shortData) + " in "+str(elapsedTime) # Insertion sort : small dataset shortData = copy.deepcopy(copyShortData) startTime = datetime.datetime.now() insertionSort(shortData) endTime = datetime.datetime.now() elapsedTime = endTime - startTime print "Insertion sorted short data = "+ str(shortData) + " in "+str(elapsedTime)+ "\n" stdout.flush() # Selection sort : small dataset shortData = copy.deepcopy(copyShortData) startTime = datetime.datetime.now() selectionSort(shortData) endTime = datetime.datetime.now() elapsedTime = endTime - startTime print "Selection sorted short data = "+ str(shortData) + " in "+str(elapsedTime)+ "\n" stdout.flush() # -------- LARGE DATA ------- print '\n\n--------- Large data sets ---------\n\n' largeSize = 10000 # Data set size for large data set demonstration popSize = largeSize * 10 # Domain of random numbers allowed in random data set largeData = random.sample(range(0, popSize), largeSize) # Genrate Random data copyLargeData = copy.deepcopy(largeData) # Maintain a copy for other algorithms print ("Generated random large data with %d elements\n"%largeSize) # print "Large data = "+ str(largeData)+"\n" stdout.flush() # yield ("Generated random large data with %d elements"%largeSize) # Merge sort : large dataset print 'Merge sorting large data (%d elements)...\n' %( largeSize) stdout.flush() startTime = datetime.datetime.now() mergeSortLargeData = copy.deepcopy(copyLargeData) # Maintain a copy for other algorithms mergeSort(mergeSortLargeData) endTime = datetime.datetime.now() elapsedTime = endTime - startTime print ("Merge sorted large data (%d elements) in "%( largeSize) + str(elapsedTime) ) + "\n" stdout.flush() # yield ("Merge sorted large data (%d elements) in "%( largeSize) + str(elapsedTime) ) # Quick sort : large dataset print 'Quick sorting large data (%d elements)...\n' %( largeSize) stdout.flush() quickSortLargeData = copy.deepcopy(copyLargeData) startTime = datetime.datetime.now() quickSort(quickSortLargeData) endTime = datetime.datetime.now() elapsedTime = endTime - startTime print ("Quick sorted large data (%d elements) in "%( largeSize) + str(elapsedTime)+ "\n" ) stdout.flush() # yield ("Quick sorted large data (%d elements) in "%( largeSize) + str(elapsedTime) ) # Heap sort : large dataset print 'Heap sorting large data (%d elements)...\n' %( largeSize) stdout.flush() heapSortLargeData = copy.deepcopy(copyLargeData) startTime = datetime.datetime.now() heapSort(heapSortLargeData) endTime = datetime.datetime.now() elapsedTime = endTime - startTime print ("Heap sorted large data (%d elements) in "%( largeSize) + str(elapsedTime)+ "\n" ) stdout.flush() # yield ("Quick sorted large data (%d elements) in "%( largeSize) + str(elapsedTime) ) # Insertion sort : large dataset print 'Insertion sorting large data (%d elements)...\n' %( largeSize) stdout.flush() insertionSortLargeData = copy.deepcopy(copyLargeData) startTime = datetime.datetime.now() insertionSort(insertionSortLargeData) endTime = datetime.datetime.now() elapsedTime = endTime - startTime print ("Insertion sorted large data (%d elements) in "%( largeSize) + str(elapsedTime)+ "\n" ) stdout.flush() # Selection sort : large dataset print 'Selection sorting large data (%d elements)...\n' %( largeSize) stdout.flush() largeSelectionSortData = copy.deepcopy(copyLargeData) startTime = datetime.datetime.now() selectionSort(largeSelectionSortData) endTime = datetime.datetime.now() elapsedTime = endTime - startTime print ("Selection sorted large data (%d elements) in "%( largeSize) + str(elapsedTime) + "\n") stdout.flush() print "Printing large data sets...\n" print "Raw large data set = "+ str(largeData)+"\n\n\n\n" print "\n\n ------ Sorted Large Data sets ------\n\n" print "Merge sorted large data = "+ str(mergeSortLargeData)+"\n\n\n\n" print "Quick Sorted large data = "+ str(quickSortLargeData)+"\n\n\n\n" print "Heap Sorted large data = "+ str(heapSortLargeData)+"\n\n\n\n" print "Insertion Sorted large data = "+ str(insertionSortLargeData)+"\n\n\n\n" print "Selection Sorted large data = "+ str(selectionSortLargeData)+"\n\n\n\n" print '\nAlgorithms execution ended ...\n' stdout.flush()
def timeQSort(l): newList = quicksort.quickSort(l) return str(newList)
start = time.time() #open hist data files histfile = open("hist.txt", "r+") lines = histfile.readlines() data = [tuple(line.strip().split()) for line in lines] #open input data files inputfile = open("input.txt", "r") lines = inputfile.readlines() inputdata = [tuple(line.strip().split()) for line in lines] #sort data file quicksort.quickSort(data, 0, len(data) - 1) #read in input file for inputitem in inputdata: j = linearsearch.LinearSearch(data, inputitem[2], 4) approve = 0 reject = 0 if len(j): for item in j: if item[2] == inputitem[0] and item[3] == inputitem[1]: if item[5] == "Approved": approve = approve + 1 else: reject = reject + 1 add_appid(inputitem, item[0], histfile)