Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Merge sort implementation
Language:
Ada
Assembly
Bash
C#
C++ (gcc)
C++ (clang)
C++ (vc++)
C (gcc)
C (clang)
C (vc)
Client Side
Clojure
Common Lisp
D
Elixir
Erlang
F#
Fortran
Go
Haskell
Java
Javascript
Kotlin
Lua
MySql
Node.js
Ocaml
Octave
Objective-C
Oracle
Pascal
Perl
Php
PostgreSQL
Prolog
Python
Python 3
R
Rust
Ruby
Scala
Scheme
Sql Server
Swift
Tcl
Visual Basic
Layout:
Vertical
Horizontal
""" Merge sort implementation Author: Jayesh Chandrapal Version: 1.0 """ def _split(arr): return (arr[: len(arr) // 2], arr[len(arr) // 2 :]) def _merge(left, right): leftIndex = 0 rightIndex = 0 result = [] while leftIndex < len(left) and rightIndex < len(right): if left[leftIndex] <= right[rightIndex]: result.append(left[leftIndex]) leftIndex += 1 else: result.append(right[rightIndex]) rightIndex += 1 if leftIndex < len(left): result.extend(left[leftIndex:]) elif rightIndex < len(right): result.extend(right[rightIndex:]) return result def mergeSort(arr): if arr is None: return None if len(arr) < 2: return arr left, right = _split(arr) return _merge(mergeSort(left), mergeSort(right)) nums = [1, 6, 5, 7, 8, 2, 4, 3, 9] print(mergeSort(nums))
[
+
]
Show input
Absolute running time: 0.14 sec, cpu time: 0.02 sec, memory peak: 8 Mb, absolute service time: 0.15 sec
fork mode
|
history
|
discussion
[1, 2, 3, 4, 5, 6, 7, 8, 9]