Merge Sort Algorithm in C++ Programming | (C++ Program) | Part - 2 | Sorting Algorithms - DSA
Вставка
- Опубліковано 26 сер 2024
- Support Simple Snippets by Donations -
Google Pay UPI ID - tanmaysakpal11@okicici
PayPal - paypal.me/tanmaysakpal11
--------------------------------------------------------------------------------------------- Implement merge sort sorting algorithm using C++ programming language. In this tutorial we will write a program to implement merge sort algorithm.
If you don't know merge sort algorithm working, please check the the part - 1 where we discuss the working of merge sort algorithm.
Full DSA playlist - • Introduction to Data S...
Full Code & Theory article - simplesnippets...
C++ Programming Tutorials for Beginners Course - • Introduction to Comput...
Simple Snippets Official Website -
simplesnippets....
Simple Snippets on Facebook -
/ simplesnippets
Simple Snippets on Instagram -
/ simplesnippets
Simple Snippets on Twitter -
/ simplesnippet
Simple Snippets Google Plus Page -
plus.google.co...
Simple Snippets email ID -
simplesnippetsinfo@gmail.com
For More Technology News, Latest Updates and Blog articles visit our Official Website - simplesnippets....
#mergesort #sortingalogrithms #dsa #divideandconcquer #algorithms
I now realize that I never really understood merge sort until I saw your video. Thank you for such a wonderful explanation :)
Happy to hear that! Please support me by sharing the videos and our channel with your friends too. Thats the biggest help and support you can provide 😇
u teach better than Apna College(They just read the code from google and write in the videos lol).
Thank you bro ❤️😊 happy to know you like my teaching style 👍
Thank you thank you thank you so much ❤❤ your explanation is very clear. I have never seen such a clear merge sort vedio.
I'm ur neighbor
Srilankan
Glad it was helpful!
So far one of the best explanation as compared to videos of other channels.Keep it up👍
Thats really great to know Simran🙏 Please support me by sharing the videos and our channel with your friends too. Thats the biggest help and support you can provide 😇
Bhai your content is superior than over hyped channels. The way you explain is more than paid courses . You deserve more
Thank You so much bro ✌️
As Baburao said - Tu toh Dev manus nikla 🙏😂❤️
So far one of the best explanation as compared to videos of other channels.
Best video on the merge sorting
All the queries are clear 💯💯
really good video! wasn't understanding the sorting part of the algorithm at first, looking at other tutorials, but with your explanation i finally get it
Glad it helped!
After watching both parts I'm pretty much confident about merge sort...❤✌
You are very good teacher. I only think I will do coding but I never did. But after watching your videos I am doing well. Thank you so much
Excellent presentation by the speaker. Very immaculately and interestingly explained the very intrricate and complex concepts.
you are the best ever
I said that and I engineering
maybe you the second one I say that for him
Thank you so much sir. You made engineering quite easy for me :)
You are most welcome
Amazing, Understood about Merge sort and i think you missed out time and space complexity analysis....Thank you!!!
My man explained it like butter 💥
Thank you so much sir!!!!! The diagram came in clutch!
thanks for the valuable lesson :)
thank you so much from the state of texas!
Most welcome Eric. Glad you liked the video 😊✌️
The basic idea is actually not dividing the original vector into small vectors(no need to instantiate subvectors), but update the left, middle and right values, so the "arr" in the argument list of function "merge" is always the original one, and you always need to define the "k" variable instead of just tem.push_back()
for me dynamic allocation did not work. but when i change below 'k' assignment and temp index, it works fine ...
int k =0;
for(int s=l;s
Thank you soo much I had the same propblem.
It would would work for size 3.
But, when I went to size 7 it would only print values for before sorting and would exit the code.
Any idea why?
Dynamic way was working correctly before and after sorting for array size 3?
Declare the size integer as follows
int b; // Stores the size of array to be used
cin>>b;
Main key is here :
static int size = b;
With the use of static keyword the size variable can be used globally.
I hope it helps 🙂.
Declare vector in merge function instead of temp array and push numbers and keep all the code same
It will definitely work .arr[s]=temp[s-l] keep it same as you mentioned.
temp[s-l] what does it means and why it is working could someone explain???
You are the best.....masum
Thanks for this! It was very meticulous and thorough. 👍🏼
Glad it was helpful! Thank you so much buddy. It would mean a lot if you could please share our channel and videos with your friends too ✌
in output "after merge sort" it's not sorting properly.i don't the reason.anyone can pls say a solution .
such a worder ful video
Thanks for this video
Thankyou bro
Best Explanation...........
pretty helpful thank you a lot, master ❤
How can you do
int myarr[size]; ???
I thought the array size should be constant unless u dynamic memory allocation such as
int *myarr=new int(size)
How does that code even work????
you right thats valid only in g++ compilers like codeblocks ,because it valid in c, but in other c++
compiler you need to dynamically allocate the array in order to put dynamic size
well explained, thanks!
in merge() function, where declaring an array of interger temp[5], this should be
int temp[l-r] correct me if i'm wrong.
For some reason I am getting an error at my mergeSort member function the erro reads expected unqualified-I’d before ‘{‘ what could this mean
Is merge sort always solved used functions is there not a way without using function
Your explanation is so amazing 😊🥺
CAn you please make videos on competitive programming lessons
thanks
You are a legend 💕
Great explanation
Glad you think so!
Please make a video on designing a website with wordpress and 000 web host
Thank you very much sir
Most welcome
bro u got a net subscriber.
Welcome to Simple Snippets!
You have hardcodes 5 in temp array but if we dont know the size of arr how will we do it ?
This Video is not added in playlist.Please Add this video in "Data Structure and algorithms" playlist
Thank you very much Suraj for letting this know. I have added this video in the playlist 😇
Awesome 👌
Bro make video with hindi language so that all videos of your will be get help thanks for the explanation keep it up 👍
A rrrrrrrrrrrr😂🤣...nice video btw
Fantastic stuff
Glad you enjoyed it
This is the best explanation , hat's of you brother 🫡
Loved it
thank you so much
In Merge function the size of temp array could be r+1 (int temp[r+1]). It's more efficient.
Anyhow! learnt alot from this channel. Thank you sir your efforts that you are putting into.
u r a god
LOL, thank you 🙏😅❤
Showing error for numbers greater than 7
Sir i think the size of temp array should remain constant for every recursive call and not equal to (r-l)+1
Yess it should be var temp = new int[arr.Length];
I'm going to comment on myself lool. temp = new int[arr.Length] will work but you allocate extra space. @
Vivekanandan Mullainathan
gave solution here. If temp = (r - l) + 1 then k has to be 0 not l. The copy temp to original array logic changes as well.
Hi dude, i wanna ask this question. Why most CSE students in india don't do the development part? Everyone is just busy solving these ds algo, cp etc.
Because development doesn't land you a good job which is very sad because it's all development once you get the job. However, a developer must also know the useful algos but that is never enough for interviews :)
@@vidhiangrish1456 alright i already got the answer. I think algorithms and ds are fine, i enjoy them all but cp doesn't make sense, it feels like rat race..
Also, too much of ds algo is toxic, that'll make you eligible just for a job in MNC, this shouldn't be the goal, atleast for me, i wanna build something at the end.. job is old school thing.
@@amans6504 Trust me that's my goal too. I've been so much into development that I've never even considered going for any coding challenges/ competitions. And now knowing that it won't land me a job has got me really worried cause if it's not a good company, the developers are exploited here in India.
@@vidhiangrish1456 try for startups, they don't care much about ds algo thing. Also, learning Will be far better at startups, only downside is you've to add value else they'll fire you
Ds algo cp has become overrated. Surely it's important to cover the fundamentals but yeah along with that it's more if not equally important to actually build some projects. In my recent tech talks interview with Sourav Johar(VMware employee) we discussed this point in detail. Y'all should watch the video 🤟
I copied your code and tried running it but It didn't work
why uve declared
size=(r-1)+1; in line no 13?
Sir why we are using mergesort function as recursive
exellent
How to do merge sort of an 2D array of co-ordinate points?
gg usefull
THank you. Please do share the videos with your friends too 😇
Hello sir quick question. I have a problem with this following codes because this lot is not showing up when I compile and start it. But it doesn't say that it has errors.
MergeSort(x, 0, 4);
cout
After for loop write
cout
🤩
Will Merge Sort sort 2D Matrix?
Can i get the code to copy
While running code on leetcode ,it is showing addresssanitization: error stack overflow on address......plz anyone help me with this
I just stop video and suscribe execpt i could do any thing
Instead of saying "I think it works, please say that the "scope is limited". 8 : 54
wow
@@maitreyshukla258 shukla Ji yaha Bhi
Bro iam getting segmentation fault iam compiling in terminal
Some internal issue. check the code link that I have shared in the video description ✌
Inside `merge()` you can't allocate the size of the array the way you did because it will return an error:
int size = (r - l) + 1;
int temp[size];
…won't compile because of the following error: "expression must have a constant value of variable (declared at line #) cannot be used as a constant"
for me it compiled for smaller array but it also gives segmentation fault for big array size not a good idea to use.
Yes Me too...Better to put some large constant value...it wont take input size in c++ 17 ...Different compiler acts differently...mine and yours compiler are same
you have to give size as argument in all the function calls and function argument. only then the merge sort can get the value of size.
mergesort(myarr,0,size-1,size)
like this
Dude also make a video on hashing
Yes I will ✌
Can anyone please tell me how's this code even working? I mean to say that nothing is returned in main() so how's 'myarr' array is sorted given the fact that its scope is limited to main() only whereas sorting is done with the help of mergesort() and merge() which can't manipulate 'myarr' array
when you are passing the array to mergeSort function in main(), you are actually passing the pointer itself. An array can never be passed as an argument, hence when you pass an array to a function, it's always a pointer hence the array elements are also changed if you change it within the function
I want to join your classes. If its possible plz let me know.
Bro please help me.What can be done to sort the array in descending order
do the same algorithm and reverse it, that's a quick fix
Sir if I am running this program with 7 or more elements the sorted array is not getting printed and a return value of 3221225477 is getting displayed! The code is running perfectly fine with 6 or less elements though! Where do you think I might have mistanken?
I think that is because we have hardcoded the size of the array as 5. you can take the size of the array from the user and then make those changes in the code and try. ✌
@@SimpleSnippets that is where the problem arises I haven't hard coded the values sir.. I had taken the input from the user and crossed a lot of times, but this issue isn't resolving! I tried googling out the return value also, looks like it isn't any random no. Can you help me with that? Moreover I was writing the code by looking at the video so and cross checked!
Do one thing, drop me a mail and I'll send you my version of code which takes size of the array at run time. Mail me at - simplesnippetsinfo@gmail.com
I've mailed you! Thank you so much!!!
Yeah .. im getting segmentation fault
Why is the size inside the merge function (r-1)+1, can't you directly put r instead?
( R - L ) + 1
For the first merge(arr[], l, m, r) function, more specifically merge(arr, 0, 0, 1), you'll notice that writing temp[r] gives you temp[1], an array with size of 1. However, this merge function requires an array of size 2 (eg. temp[2]), so this is the main reason you cannot directly write "r" as mentioned. On the other hand, writing temp[size] whereby size= r-l+1 does the job well.
In addition, other than updating this dynamic size, the following changes have to be made as well.
while (i
@@ZhenZhou700 I also made these changes and it fixed my Segmentation Fault error. I also changed 'int myarr[size]' to 'int *myarr = new int[size]' because you need to dynamically allocate the array in order to put a dynamic size:
while (i
PLEASE USE DARKMODE PLEASE
why it was not in the list?
What list ?
cos imak
Bhai Jaan plzzz Urdu men perhaya karen🙏🙏🙏🙏
the code is totally wrong, you try to insert 9 7 5 8 6.
yeah it does not work for all input and even negative numbers
Can anyone explain that where swapping is happening at sub levels 🤔
12:14 So within the merge() function there is a temporary array, temp, where we place the lower of arr[i] and arr[j]. There's not really any swapping going on because we are placing the values into a new array. After the sorting, we set the original array equal to the temp array at line 42 @ 18:00