|
9 | 9 | "name": "stdout",
|
10 | 10 | "output_type": "stream",
|
11 | 11 | "text": [
|
12 |
| - "Sorted array is:\n", |
13 |
| - "1\n", |
| 12 | + "Sorted array is\n", |
14 | 13 | "5\n",
|
| 14 | + "6\n", |
15 | 15 | "7\n",
|
16 |
| - "8\n", |
17 |
| - "9\n", |
18 |
| - "10\n" |
| 16 | + "11\n", |
| 17 | + "12\n", |
| 18 | + "13\n" |
19 | 19 | ]
|
20 | 20 | }
|
21 | 21 | ],
|
22 | 22 | "source": [
|
23 |
| - "def partition(arr,low,high): \n", |
24 |
| - " i = ( low-1 ) \n", |
25 |
| - " pivot = arr[high]\n", |
| 23 | + "def heapify(arr, n, i): \n", |
| 24 | + " largest = i \n", |
| 25 | + " l = 2 * i + 1 \n", |
| 26 | + " r = 2 * i + 2 \n", |
| 27 | + "\n", |
| 28 | + " if l < n and arr[i] < arr[l]: \n", |
| 29 | + " largest = l \n", |
26 | 30 | " \n",
|
27 |
| - " for j in range(low , high): \n", |
28 |
| - " if arr[j] <= pivot: \n", |
29 |
| - " i = i+1 \n", |
30 |
| - " arr[i],arr[j] = arr[j],arr[i] \n", |
31 |
| - " arr[i+1],arr[high] = arr[high],arr[i+1] \n", |
32 |
| - " return ( i+1 ) \n", |
| 31 | + " if r < n and arr[largest] < arr[r]: \n", |
| 32 | + " largest = r \n", |
33 | 33 | " \n",
|
34 |
| - "def quickSort(arr,low,high): \n", |
35 |
| - " if low < high:\n", |
36 |
| - " pi = partition(arr,low,high) \n", |
37 |
| - " quickSort(arr, low, pi-1) \n", |
38 |
| - " quickSort(arr, pi+1, high) \n", |
| 34 | + " if largest != i: \n", |
| 35 | + " arr[i],arr[largest] = arr[largest],arr[i] # swap \n", |
39 | 36 | " \n",
|
40 |
| - "\n", |
41 |
| - "arr = [10, 7, 8, 9, 1, 5] \n", |
| 37 | + " heapify(arr, n, largest) \n", |
| 38 | + " \n", |
| 39 | + " \n", |
| 40 | + "def heapSort(arr): \n", |
| 41 | + " n = len(arr) \n", |
| 42 | + " for i in range(n, -1, -1): \n", |
| 43 | + " heapify(arr, n, i) \n", |
| 44 | + " \n", |
| 45 | + " for i in range(n-1, 0, -1): \n", |
| 46 | + " arr[i], arr[0] = arr[0], arr[i] # swap \n", |
| 47 | + " heapify(arr, i, 0) \n", |
| 48 | + " \n", |
| 49 | + "arr = [ 12, 11, 13, 5, 6, 7] \n", |
| 50 | + "heapSort(arr) \n", |
42 | 51 | "n = len(arr) \n",
|
43 |
| - "quickSort(arr,0,n-1) \n", |
44 |
| - "print (\"Sorted array is:\") \n", |
| 52 | + "print (\"Sorted array is\") \n", |
45 | 53 | "for i in range(n): \n",
|
46 | 54 | " print (\"%d\" %arr[i]), "
|
47 | 55 | ]
|
|
0 commit comments