--- Block 1 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 2 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 3 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 4 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 5 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 6 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 7 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 8 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 9 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 10 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 11 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 12 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 13 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 14 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 15 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 16 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 17 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 18 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 19 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 20 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 21 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 22 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 23 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 24 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 25 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 26 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 27 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 28 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 29 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 30 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 31 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 32 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 33 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 34 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 35 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 36 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 37 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 38 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 39 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 40 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 41 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 42 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 43 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 44 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 45 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 46 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 47 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 48 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 49 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 50 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 51 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 52 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 53 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 54 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 55 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 56 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 57 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 58 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 59 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 60 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 61 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 62 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 63 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 64 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 65 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 66 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 67 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 68 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 69 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 70 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 71 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 72 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 73 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 74 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 75 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 76 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 77 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 78 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 79 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 80 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 81 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 82 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 83 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 84 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 85 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 86 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 87 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 88 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 89 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 90 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 91 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 92 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 93 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 94 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 95 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 96 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 97 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 98 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 99 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 100 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 101 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 102 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 103 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 104 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 105 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 106 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 107 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 108 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 109 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 110 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 111 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 112 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 113 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 114 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 115 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 116 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 117 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 118 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 119 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 120 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 121 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 122 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 123 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 124 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 125 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 126 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 127 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 128 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 129 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 130 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 131 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 132 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 133 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 134 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 135 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 136 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 137 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 138 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 139 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 140 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 141 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 142 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 143 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 144 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 145 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 146 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 147 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 148 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 149 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 150 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 151 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 152 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 153 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 154 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 155 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 156 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 157 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 158 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 159 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 160 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 161 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 162 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 163 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 164 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 165 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 166 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 167 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 168 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 169 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 170 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 171 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 172 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 173 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 174 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 175 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 176 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 177 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 178 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 179 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 180 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 181 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 182 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 183 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 184 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 185 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 186 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 187 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 188 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 189 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 190 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 191 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 192 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 193 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 194 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 195 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 196 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 197 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 198 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 199 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 200 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 201 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 202 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 203 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 204 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 205 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 206 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 207 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 208 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 209 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 210 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 211 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 212 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 213 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 214 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 215 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 216 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 217 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 218 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 219 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 220 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 221 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 222 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 223 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 224 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 225 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 226 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 227 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 228 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 229 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 230 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 231 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 232 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 233 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 234 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 235 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 236 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 237 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 238 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 239 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 240 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 241 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 242 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 243 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 244 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 245 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 246 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 247 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 248 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 249 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 250 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 251 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 252 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 253 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 254 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 255 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 256 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 257 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 258 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 259 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 260 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 261 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 262 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 263 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 264 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 265 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 266 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 267 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 268 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 269 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 270 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res
--- Block 271 ---
Sorting Algorithms Overview
Common sorts: Bubble, Selection, Insertion, Merge, Quick, Heap.
Complexities:
- Bubble: O(n^2)
- Selection: O(n^2)
- Insertion: O(n^2) average, good for nearly-sorted
- Merge: O(n log n), stable
- Quick: O(n log n) average, O(n^2) worst-case
- Heap: O(n log n)
Pseudo and short code examples:
Python - merge sort:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
i=j=0
res=[]
while i<len(left) and j<len(right):
if left[i] <= right[j]:
res.append(left[i]); i+=1
else:
res.append(right[j]); j+=1
res.extend(left[i:]); res.extend(right[j:])
return res