+{"cells":[{"cell_type":"markdown","id":"aa70ec6a","metadata":{"id":"aa70ec6a"},"source":["### Merge two sorted sublists to one sorted list\n","\n","Input : [1, 5, 8], [2, 3, 6]\n","\n","Output : [1, 2, 3, 5, 6, 8]"]},{"cell_type":"code","execution_count":null,"id":"5d78119b","metadata":{"id":"5d78119b"},"outputs":[],"source":["def merge(A : list, B : list):\n"," output = []\n"," i = 0; j = 0\n","\n"," while (i < len(A)) and (j < len(B)):\n"," if A[i] < B[j]:\n"," output.append(A[i])\n"," i += 1\n"," elif A[i] > B[j]:\n"," output.append(B[j])\n"," j += 1\n","\n"," if i < j:\n"," output.append(A[i])\n"," else:\n"," output.append(B[j])\n","\n"," print(output)"]},{"cell_type":"code","execution_count":null,"id":"0d06e31c","metadata":{"id":"0d06e31c"},"outputs":[],"source":["A = [1, 5, 8]\n","B = [2, 3, 6]"]},{"cell_type":"code","execution_count":null,"id":"f9406089","metadata":{"id":"f9406089","outputId":"7281987d-1ba6-4640-c271-e1afcd6cfcb0"},"outputs":[{"name":"stdout","output_type":"stream","text":["[1, 2, 3, 5, 6, 8]\n"]}],"source":["merge(A, B)"]},{"cell_type":"markdown","id":"8cd692f3","metadata":{"id":"8cd692f3"},"source":["### Implement merge sort"]},{"cell_type":"code","execution_count":null,"id":"ad3fb706","metadata":{"id":"ad3fb706"},"outputs":[],"source":["A = [54, 23, 79, 13]"]},{"cell_type":"code","execution_count":null,"id":"a4092741","metadata":{"id":"a4092741"},"outputs":[],"source":["def MergeSort(A : list):\n"," if len(A) <= 1:\n"," return A\n","\n"," mid = len(A) // 2\n","\n"," left = A[:mid]\n"," right = A[mid:]\n","\n"," leftlist = MergeSort(left)\n"," rightlist = MergeSort(right)\n","\n"," return Merge(leftlist, rightlist)"]},{"cell_type":"code","execution_count":null,"id":"ed6d2e5c","metadata":{"id":"ed6d2e5c"},"outputs":[],"source":["def Merge(A : list, B : list):\n"," output = []\n"," i = 0; j = 0\n","\n"," while (i < len(A)) and (j < len(B)):\n"," if A[i] < B[j]:\n"," output.append(A[i])\n"," i += 1\n"," elif A[i] > B[j]:\n"," output.append(B[j])\n"," j += 1\n","\n"," if i < j:\n"," output.append(A[i])\n"," else:\n"," output.append(B[j])\n","\n"," return output"]},{"cell_type":"code","execution_count":null,"id":"8959719c","metadata":{"id":"8959719c","outputId":"982f4523-7b55-4666-cf44-911ec4639ce0"},"outputs":[{"name":"stdout","output_type":"stream","text":["[13, 23, 54, 79]\n"]}],"source":["print(MergeSort(A))"]}],"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.9.12"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5}
0 commit comments