is this python code relevant for merge sort?Merge sort in PythonMerge sort Python implementationMerge sort...
How did the power source of Mar-Vell's aircraft end up with her?
Good allowance savings plan?
Should I take out a loan for a friend to invest on my behalf?
Could you please stop shuffling the deck and play already?
What to do when during a meeting client people start to fight (even physically) with each others?
Exporting list of URLs
Unreachable code, but reachable with exception
Word-Letter Ladder
Do f-stop and exposure time perfectly cancel?
Why is there a voltage between the mains ground and my radiator?
Force user to remove USB token
Making a sword in the stone, in a medieval world without magic
Is there an elementary proof that there are infinitely many primes that are *not* completely split in an abelian extension?
Do Bugbears' arms literally get longer when it's their turn?
Finding algorithms of QGIS commands?
Why do different render engines generate different z pass?
PTIJ: Why can't I eat anything?
Why is this plane circling around the LKO airport every day?
Algorithm to convert a fixed-length string to the smallest possible collision-free representation?
Solving "Resistance between two nodes on a grid" problem in Mathematica
Word for a person who has no opinion about whether god exists
How to pass a string to a command that expects a file?
How did Alan Turing break the enigma code using the hint given by the lady in the bar?
They call me Inspector Morse
is this python code relevant for merge sort?
Merge sort in PythonMerge sort Python implementationMerge sort implementation in PythonMerge Sort Algorithm PythonRecursive merge sort in pythonPython Merge Sort ImplementationPython Merge sort count inversionsSearching the Array Index & Element EqualityMerge sort approach in PythonPython merge sort
$begingroup$
This code below is what i think should be the implementation of merge sort in Python and it works as expected. It sorts the given list. But after considering some online implementations i am doubtful about mine. so the base question is "Is this even Merge sort?". As per the requirement of the question it is to be assumed that all values are distinct. Thank you for your time and effort in critiquing this code
def merge(arr):
# base case
length = len(arr)
half = length//2
if length == 1 or length == 0:
return arr
# recursive case
firstHalf = merge(arr[:half]) # sort first half
secondHalf = merge(arr[half:]) # sort second half
length_firstHalf = len(firstHalf)
length_secondHalf = len(secondHalf)
sortedList = []
i, j = 0, 0 # variables for iteration
while i != length_firstHalf and j != length_secondHalf: # add elements into the new array until either of then two sub arrays is completely traversed
if firstHalf[i] > secondHalf[j]:
sortedList.append(secondHalf[j])
j += 1
continue
if firstHalf[i] < secondHalf[j]:
sortedList.append(firstHalf[i])
i += 1
return(sortedList + firstHalf[i:] + secondHalf[j:]) # return the array after adding whats left of sub array which wasnt completely traversed
python
New contributor
$endgroup$
add a comment |
$begingroup$
This code below is what i think should be the implementation of merge sort in Python and it works as expected. It sorts the given list. But after considering some online implementations i am doubtful about mine. so the base question is "Is this even Merge sort?". As per the requirement of the question it is to be assumed that all values are distinct. Thank you for your time and effort in critiquing this code
def merge(arr):
# base case
length = len(arr)
half = length//2
if length == 1 or length == 0:
return arr
# recursive case
firstHalf = merge(arr[:half]) # sort first half
secondHalf = merge(arr[half:]) # sort second half
length_firstHalf = len(firstHalf)
length_secondHalf = len(secondHalf)
sortedList = []
i, j = 0, 0 # variables for iteration
while i != length_firstHalf and j != length_secondHalf: # add elements into the new array until either of then two sub arrays is completely traversed
if firstHalf[i] > secondHalf[j]:
sortedList.append(secondHalf[j])
j += 1
continue
if firstHalf[i] < secondHalf[j]:
sortedList.append(firstHalf[i])
i += 1
return(sortedList + firstHalf[i:] + secondHalf[j:]) # return the array after adding whats left of sub array which wasnt completely traversed
python
New contributor
$endgroup$
1
$begingroup$
Please fix your indentation. The easiest way to post code is to paste it into the question editor, highlight it, and press Ctrl-K to mark it as a code block.
$endgroup$
– 200_success
6 mins ago
$begingroup$
@200_success thank you for the advice, the code is edited now
$endgroup$
– billi_meow
3 mins ago
$begingroup$
It's still broken.
$endgroup$
– 200_success
2 mins ago
add a comment |
$begingroup$
This code below is what i think should be the implementation of merge sort in Python and it works as expected. It sorts the given list. But after considering some online implementations i am doubtful about mine. so the base question is "Is this even Merge sort?". As per the requirement of the question it is to be assumed that all values are distinct. Thank you for your time and effort in critiquing this code
def merge(arr):
# base case
length = len(arr)
half = length//2
if length == 1 or length == 0:
return arr
# recursive case
firstHalf = merge(arr[:half]) # sort first half
secondHalf = merge(arr[half:]) # sort second half
length_firstHalf = len(firstHalf)
length_secondHalf = len(secondHalf)
sortedList = []
i, j = 0, 0 # variables for iteration
while i != length_firstHalf and j != length_secondHalf: # add elements into the new array until either of then two sub arrays is completely traversed
if firstHalf[i] > secondHalf[j]:
sortedList.append(secondHalf[j])
j += 1
continue
if firstHalf[i] < secondHalf[j]:
sortedList.append(firstHalf[i])
i += 1
return(sortedList + firstHalf[i:] + secondHalf[j:]) # return the array after adding whats left of sub array which wasnt completely traversed
python
New contributor
$endgroup$
This code below is what i think should be the implementation of merge sort in Python and it works as expected. It sorts the given list. But after considering some online implementations i am doubtful about mine. so the base question is "Is this even Merge sort?". As per the requirement of the question it is to be assumed that all values are distinct. Thank you for your time and effort in critiquing this code
def merge(arr):
# base case
length = len(arr)
half = length//2
if length == 1 or length == 0:
return arr
# recursive case
firstHalf = merge(arr[:half]) # sort first half
secondHalf = merge(arr[half:]) # sort second half
length_firstHalf = len(firstHalf)
length_secondHalf = len(secondHalf)
sortedList = []
i, j = 0, 0 # variables for iteration
while i != length_firstHalf and j != length_secondHalf: # add elements into the new array until either of then two sub arrays is completely traversed
if firstHalf[i] > secondHalf[j]:
sortedList.append(secondHalf[j])
j += 1
continue
if firstHalf[i] < secondHalf[j]:
sortedList.append(firstHalf[i])
i += 1
return(sortedList + firstHalf[i:] + secondHalf[j:]) # return the array after adding whats left of sub array which wasnt completely traversed
python
python
New contributor
New contributor
edited 48 secs ago
billi_meow
New contributor
asked 12 mins ago
billi_meowbilli_meow
62
62
New contributor
New contributor
1
$begingroup$
Please fix your indentation. The easiest way to post code is to paste it into the question editor, highlight it, and press Ctrl-K to mark it as a code block.
$endgroup$
– 200_success
6 mins ago
$begingroup$
@200_success thank you for the advice, the code is edited now
$endgroup$
– billi_meow
3 mins ago
$begingroup$
It's still broken.
$endgroup$
– 200_success
2 mins ago
add a comment |
1
$begingroup$
Please fix your indentation. The easiest way to post code is to paste it into the question editor, highlight it, and press Ctrl-K to mark it as a code block.
$endgroup$
– 200_success
6 mins ago
$begingroup$
@200_success thank you for the advice, the code is edited now
$endgroup$
– billi_meow
3 mins ago
$begingroup$
It's still broken.
$endgroup$
– 200_success
2 mins ago
1
1
$begingroup$
Please fix your indentation. The easiest way to post code is to paste it into the question editor, highlight it, and press Ctrl-K to mark it as a code block.
$endgroup$
– 200_success
6 mins ago
$begingroup$
Please fix your indentation. The easiest way to post code is to paste it into the question editor, highlight it, and press Ctrl-K to mark it as a code block.
$endgroup$
– 200_success
6 mins ago
$begingroup$
@200_success thank you for the advice, the code is edited now
$endgroup$
– billi_meow
3 mins ago
$begingroup$
@200_success thank you for the advice, the code is edited now
$endgroup$
– billi_meow
3 mins ago
$begingroup$
It's still broken.
$endgroup$
– 200_success
2 mins ago
$begingroup$
It's still broken.
$endgroup$
– 200_success
2 mins ago
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
});
});
}, "mathjax-editing");
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "196"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
billi_meow is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f215298%2fis-this-python-code-relevant-for-merge-sort%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
billi_meow is a new contributor. Be nice, and check out our Code of Conduct.
billi_meow is a new contributor. Be nice, and check out our Code of Conduct.
billi_meow is a new contributor. Be nice, and check out our Code of Conduct.
billi_meow is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f215298%2fis-this-python-code-relevant-for-merge-sort%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
$begingroup$
Please fix your indentation. The easiest way to post code is to paste it into the question editor, highlight it, and press Ctrl-K to mark it as a code block.
$endgroup$
– 200_success
6 mins ago
$begingroup$
@200_success thank you for the advice, the code is edited now
$endgroup$
– billi_meow
3 mins ago
$begingroup$
It's still broken.
$endgroup$
– 200_success
2 mins ago