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 😇
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 😇
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
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()
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.
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
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.
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 🤟
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);
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.
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!
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
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"
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
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
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
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 😇
Best video on the merge sorting
All the queries are clear 💯💯
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 🙏😂❤️
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 👍
So far one of the best explanation as compared to videos of other channels.
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 😇
fabulous... brilliant explanation.. can't erase ur way of teaching from my mind . scanned from top to bottom.. ❤
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!
Excellent presentation by the speaker. Very immaculately and interestingly explained the very intrricate and complex concepts.
After watching both parts I'm pretty much confident about merge sort...❤✌
My man explained it like butter 💥
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
such a worder ful video
Thanks for this video
Thank you so much sir!!!!! The diagram came in clutch!
Is merge sort always solved used functions is there not a way without using function
You are the best.....masum
thank you so much from the state of texas!
Most welcome Eric. Glad you liked the video 😊✌️
Thank you so much sir. You made engineering quite easy for me :)
You are most welcome
thanks for the valuable lesson :)
Amazing, Understood about Merge sort and i think you missed out time and space complexity analysis....Thank you!!!
Best Explanation...........
well explained, thanks!
you are the best ever
I said that and I engineering
maybe you the second one I say that for him
Great explanation
Glad you think so!
pretty helpful thank you a lot, master ❤
You are a legend 💕
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 ✌
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()
Fantastic stuff
Glad you enjoyed it
Thank you very much sir
Most welcome
exellent
Thankyou bro
thanks
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???
Loved it
thank you so much
u r a god
LOL, thank you 🙏😅❤
This is the best explanation , hat's of you brother 🫡
bro u got a net subscriber.
Welcome to Simple Snippets!
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
in merge() function, where declaring an array of interger temp[5], this should be
int temp[l-r] correct me if i'm wrong.
Please make a video on designing a website with wordpress and 000 web host
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
need data structure asymptotic notation and recurrence rel in detail
You have hardcodes 5 in temp array but if we dont know the size of arr how will we do it ?
Your explanation is so amazing 😊🥺
CAn you please make videos on competitive programming lessons
in output "after merge sort" it's not sorting properly.i don't the reason.anyone can pls say a solution .
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 😇
A rrrrrrrrrrrr😂🤣...nice video btw
Bro make video with hindi language so that all videos of your will be get help thanks for the explanation keep it up 👍
Sir why we are using mergesort function as recursive
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.
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 🤟
Instead of saying "I think it works, please say that the "scope is limited". 8 : 54
wow
@@maitreyshukla258 shukla Ji yaha Bhi
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
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.
How to do merge sort of an 2D array of co-ordinate points?
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
why uve declared
size=(r-1)+1; in line no 13?
Will Merge Sort sort 2D Matrix?
Dude also make a video on hashing
Yes I will ✌
I want to join your classes. If its possible plz let me know.
gg usefull
THank you. Please do share the videos with your friends too 😇
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
While running code on leetcode ,it is showing addresssanitization: error stack overflow on address......plz anyone help me with this
Can i get the code to copy
Bro iam getting segmentation fault iam compiling in terminal
Some internal issue. check the code link that I have shared in the video description ✌
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
I just stop video and suscribe execpt i could do any thing
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
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 copied your code and tried running it but It didn't work
why it was not in the list?
What list ?
Bhai Jaan plzzz Urdu men perhaya karen🙏🙏🙏🙏
PLEASE USE DARKMODE PLEASE
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
cos imak
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
Awesome 👌