{ "cells": [ { "cell_type": "code", "execution_count": 17, "id": "b7708ffa-07e8-4dbc-8aec-20216df4aa5b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "mh (generic function with 2 methods)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function mh(a::Vector{T}, parent_idx) where T\n", " left_idx = 2 * parent_idx\n", " right_idx = 2 * parent_idx + 1\n", " parent = a[parent_idx]\n", " left = nothing\n", " if left_idx < length(a)\n", " left = a[left_idx]\n", " end\n", " right = nothing\n", " if right_idx < length(a)\n", " right = a[right_idx]\n", " end\n", " largest_idx = parent_idx\n", " if left != nothing && left > parent\n", " largest_idx = left_idx\n", " end\n", " if right != nothing && right > a[largest_idx]\n", " largest_idx = right_idx\n", " end\n", " if parent_idx != largest_idx\n", " swap!(a[parent_idx], a[largest_idx])\n", " mh(a, largest_idx)\n", " println(a)\n", " end\n", "end" ] }, { "cell_type": "code", "execution_count": 18, "id": "b0e5fef0-f989-4d65-aab3-bd8358158b9f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10-element Vector{Int64}:\n", " 23\n", " 17\n", " 14\n", " 6\n", " 13\n", " 10\n", " 1\n", " 5\n", " 7\n", " 12" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = [23, 17, 14, 6, 13, 10, 1, 5, 7, 12]" ] }, { "cell_type": "code", "execution_count": 19, "id": "8125a148-bcb9-4f87-b4ed-c65f58858907", "metadata": {}, "outputs": [], "source": [ "mh(a, 1)" ] }, { "cell_type": "code", "execution_count": 20, "id": "aff290ac-5533-4525-98cc-83f6a457c9dc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10-element Vector{Int64}:\n", " 23\n", " 17\n", " 14\n", " 6\n", " 13\n", " 10\n", " 1\n", " 5\n", " 7\n", " 12" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a" ] }, { "cell_type": "code", "execution_count": null, "id": "2523d3b8-7d62-4589-a3b3-b917e920cc4a", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Julia 1.10.4", "language": "julia", "name": "julia-1.10" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.10.4" } }, "nbformat": 4, "nbformat_minor": 5 }