예제 #1
0
    def test_MergeSort(self):
        """! Testing of merge sort method """
        tst16 = [1, 2, 3, 7, 5, 6, 4]
        true_tst16 = [1, 2, 3, 4, 5, 6, 7]
        self.assertEqual(true_tst16, Sort.MergeSort(tst16))

        tst17 = [-1, -2, -3, -7, -5, -6, -4]
        true_tst17 = [-7, -6, -5, -4, -3, -2, -1]
        self.assertEqual(true_tst17, Sort.MergeSort(tst17))

        tst18 = [10, -2, 3, -7, 5, 6, -4]
        true_tst18 = [-7, -4, -2, 3, 5, 6, 10]
        self.assertEqual(true_tst18, Sort.MergeSort(tst18))

        tst19 = [5.0, 4.0, 3.0, 2.0, 1.0]
        true_tst19 = [1.0, 2.0, 3.0, 4.0, 5.0]
        self.assertEqual(true_tst19, Sort.MergeSort(tst19))

        tst20 = []
        true_tst20 = []
        self.assertEqual(true_tst20, Sort.MergeSort(tst20))
예제 #2
0
def Select_Base_on_SelectionSort(A, i):
    A_new = Sort.MergeSort(A, 0, len(A) - 1)
    return A_new[i - 1]
예제 #3
0
import Sort
A = [1, 7, 5, 8, 3, 5, 3, 4, 2]

print('A = ', A)

result1 = Sort.InsertionSort(A)
print('by Insertition-Sort:', result1)

result2 = Sort.MergeSort(A)
print('by Merge-Sort:', result2)

result3 = Sort.QuickSort(A, 0, len(A) - 1)
print('by Quick-Sort:', result3)

result4 = Sort.bucketSort(A)
print('by Bucket-Sort:', result4)
예제 #4
0
         msg += "\n"
         File.write(msg)
 else:
     msg = "Insertion Sort        in case 2 k = " + str(
         k) + " Time : Over Time"
     ans_1_2 = ['Insertion Sort', 'case 2', k, "Over Time"]
     #print(msg)
     msg += "\n"
     File.write(msg)
 # sol 2 gen 1
 if not OverTime[2]:
     T = []
     for i in range(10):
         data = gen_data_1(seed[i], k)
         tStart = time.perf_counter()  # 計時開始
         check = Sort.MergeSort(data)
         if check.OverTime:
             OverTime[2] = True
             msg = "Merge Sort            in case 1 k = " + str(
                 k) + " Time : Over Time"
             ans_2_1 = ['Merge Sort', 'case 1', k, "Over Time"]
             #print(msg)
             msg += "\n"
             File.write(msg)
             break
         tEnd = time.perf_counter()  # 計時結束
         T.append(tEnd - tStart)
     if not OverTime[2]:
         Tavg = sum(T) / len(T)
         msg = "Merge Sort            in case 1 k = " + str(
             k) + " Time : " + str(round(Tavg * 1000, 5)) + " (ms)"