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

КОМЕНТАРІ • 131

  • @oshinsaini255
    @oshinsaini255 4 роки тому +20

    I now realize that I never really understood merge sort until I saw your video. Thank you for such a wonderful explanation :)

    • @SimpleSnippets
      @SimpleSnippets  4 роки тому +3

      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 😇

  • @mannnanshaikh7608
    @mannnanshaikh7608 Рік тому +11

    u teach better than Apna College(They just read the code from google and write in the videos lol).

    • @SimpleSnippets
      @SimpleSnippets  Рік тому +2

      Thank you bro ❤️😊 happy to know you like my teaching style 👍

  • @kaushalyadissanayake6559
    @kaushalyadissanayake6559 3 роки тому +8

    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

  • @simransinha6225
    @simransinha6225 4 роки тому +11

    So far one of the best explanation as compared to videos of other channels.Keep it up👍

    • @SimpleSnippets
      @SimpleSnippets  4 роки тому +2

      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 😇

  • @dev754
    @dev754 2 роки тому +3

    Bhai your content is superior than over hyped channels. The way you explain is more than paid courses . You deserve more

    • @SimpleSnippets
      @SimpleSnippets  2 роки тому

      Thank You so much bro ✌️
      As Baburao said - Tu toh Dev manus nikla 🙏😂❤️

  • @Pr3kashSingh
    @Pr3kashSingh 2 роки тому +2

    So far one of the best explanation as compared to videos of other channels.

  • @shinzo007
    @shinzo007 7 місяців тому +2

    Best video on the merge sorting
    All the queries are clear 💯💯

  • @schwaad9655
    @schwaad9655 3 місяці тому +1

    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

  • @anshipatel9703
    @anshipatel9703 2 роки тому +1

    After watching both parts I'm pretty much confident about merge sort...❤✌

  • @meghamalusare1203
    @meghamalusare1203 3 роки тому +1

    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

  • @majgenscjain9991
    @majgenscjain9991 2 роки тому +2

    Excellent presentation by the speaker. Very immaculately and interestingly explained the very intrricate and complex concepts.

  • @salmanmugharbel
    @salmanmugharbel 3 місяці тому +1

    you are the best ever
    I said that and I engineering
    maybe you the second one I say that for him

  • @mansigoyal4796
    @mansigoyal4796 3 роки тому +3

    Thank you so much sir. You made engineering quite easy for me :)

  • @nagasudheer8098
    @nagasudheer8098 2 роки тому +1

    Amazing, Understood about Merge sort and i think you missed out time and space complexity analysis....Thank you!!!

  • @dheanimates
    @dheanimates Рік тому

    My man explained it like butter 💥

  • @floriskruger8098
    @floriskruger8098 2 роки тому +1

    Thank you so much sir!!!!! The diagram came in clutch!

  • @gaminghouse223
    @gaminghouse223 2 місяці тому

    thanks for the valuable lesson :)

  • @leggomaheggo
    @leggomaheggo 2 роки тому +1

    thank you so much from the state of texas!

    • @SimpleSnippets
      @SimpleSnippets  2 роки тому +1

      Most welcome Eric. Glad you liked the video 😊✌️

  • @emerydergro5332
    @emerydergro5332 Рік тому

    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()

  • @vivekmunna
    @vivekmunna 4 роки тому +4

    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

    • @FurqaanShariff
      @FurqaanShariff 3 роки тому

      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?

    • @shishankrawat2105
      @shishankrawat2105 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 🙂.

    • @varadkulkarni606
      @varadkulkarni606 2 роки тому

      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.

    • @ribhusengupta9967
      @ribhusengupta9967 2 роки тому

      temp[s-l] what does it means and why it is working could someone explain???

  • @masumali8356
    @masumali8356 Рік тому

    You are the best.....masum

  • @TheMrMelodramatic
    @TheMrMelodramatic 3 роки тому +4

    Thanks for this! It was very meticulous and thorough. 👍🏼

    • @SimpleSnippets
      @SimpleSnippets  3 роки тому

      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 ✌

  • @iyswaryabala4283
    @iyswaryabala4283 2 роки тому +1

    in output "after merge sort" it's not sorting properly.i don't the reason.anyone can pls say a solution .

  • @owais_islamic_studio
    @owais_islamic_studio Рік тому

    such a worder ful video
    Thanks for this video

  • @mohamedboubakeur4554
    @mohamedboubakeur4554 Місяць тому

    Thankyou bro

  • @vijaybhame6773
    @vijaybhame6773 2 роки тому

    Best Explanation...........

  • @mohammad_zrar
    @mohammad_zrar Рік тому

    pretty helpful thank you a lot, master ❤

  • @Sky-nt1hy
    @Sky-nt1hy 4 роки тому +2

    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????

    • @abdelrhmanahmed1378
      @abdelrhmanahmed1378 3 роки тому +1

      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

  • @Syard4250
    @Syard4250 Рік тому

    well explained, thanks!

  • @muzammalhussain4887
    @muzammalhussain4887 Рік тому

    in merge() function, where declaring an array of interger temp[5], this should be
    int temp[l-r] correct me if i'm wrong.

  • @fezalinakandol1948
    @fezalinakandol1948 Місяць тому

    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

  • @shivanshshrivastava5880
    @shivanshshrivastava5880 14 днів тому

    Is merge sort always solved used functions is there not a way without using function

  • @aayushreejaiswal1568
    @aayushreejaiswal1568 2 роки тому

    Your explanation is so amazing 😊🥺
    CAn you please make videos on competitive programming lessons

  • @saikrishnadouluri4433
    @saikrishnadouluri4433 2 роки тому +1

    thanks

  • @ibrahemnjr9924
    @ibrahemnjr9924 2 роки тому

    You are a legend 💕

  • @harshittanday4001
    @harshittanday4001 3 роки тому +1

    Great explanation

  • @MaxProgramming
    @MaxProgramming 4 роки тому +1

    Please make a video on designing a website with wordpress and 000 web host

  • @codeoutput7166
    @codeoutput7166 4 роки тому +1

    Thank you very much sir

  • @behindthescene4406
    @behindthescene4406 3 роки тому +1

    bro u got a net subscriber.

  • @yogeshchauhan9401
    @yogeshchauhan9401 8 місяців тому

    You have hardcodes 5 in temp array but if we dont know the size of arr how will we do it ?

  • @SurajSinghMIS
    @SurajSinghMIS 4 роки тому +2

    This Video is not added in playlist.Please Add this video in "Data Structure and algorithms" playlist

    • @SimpleSnippets
      @SimpleSnippets  4 роки тому

      Thank you very much Suraj for letting this know. I have added this video in the playlist 😇

  • @nitismita1035
    @nitismita1035 2 роки тому

    Awesome 👌

  • @atulnath4858
    @atulnath4858 Рік тому

    Bro make video with hindi language so that all videos of your will be get help thanks for the explanation keep it up 👍

  • @Monkey_D_Luffy0001
    @Monkey_D_Luffy0001 4 місяці тому

    A rrrrrrrrrrrr😂🤣...nice video btw

  • @Summer-me4pt
    @Summer-me4pt 4 роки тому +1

    Fantastic stuff

  • @vinaykumar9688
    @vinaykumar9688 7 місяців тому +1

    This is the best explanation , hat's of you brother 🫡

  • @sahilarora7186
    @sahilarora7186 3 роки тому

    Loved it

  • @user-bu8mg7uq3s
    @user-bu8mg7uq3s 2 роки тому

    thank you so much

  • @aliajmal8517
    @aliajmal8517 2 роки тому

    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.

  • @jashwanthkumarvasampally2978
    @jashwanthkumarvasampally2978 4 роки тому +1

    u r a god

  • @mohammadhaseeb948
    @mohammadhaseeb948 4 роки тому +1

    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

    • @bonzo6989
      @bonzo6989 4 роки тому

      Yess it should be var temp = new int[arr.Length];

    • @bonzo6989
      @bonzo6989 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.

  • @amans6504
    @amans6504 3 роки тому +2

    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.

    • @vidhiangrish1456
      @vidhiangrish1456 3 роки тому +1

      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 :)

    • @amans6504
      @amans6504 3 роки тому +1

      @@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.

    • @vidhiangrish1456
      @vidhiangrish1456 3 роки тому +1

      @@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.

    • @amans6504
      @amans6504 3 роки тому +2

      @@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

    • @SimpleSnippets
      @SimpleSnippets  3 роки тому +1

      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 🤟

  • @venkatr2307
    @venkatr2307 7 місяців тому

    I copied your code and tried running it but It didn't work

  • @ekramulnibir
    @ekramulnibir 2 роки тому

    why uve declared
    size=(r-1)+1; in line no 13?

  • @preethinayak9659
    @preethinayak9659 2 роки тому

    Sir why we are using mergesort function as recursive

  • @Hizzus
    @Hizzus 2 роки тому

    exellent

  • @devamjoshi4180
    @devamjoshi4180 3 роки тому

    How to do merge sort of an 2D array of co-ordinate points?

  • @Keshish4
    @Keshish4 4 роки тому +4

    gg usefull

    • @SimpleSnippets
      @SimpleSnippets  4 роки тому

      THank you. Please do share the videos with your friends too 😇

  • @kylorojen8066
    @kylorojen8066 2 роки тому

    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

  • @aaranyaksantra9933
    @aaranyaksantra9933 Рік тому

    🤩

  • @MKSundaram
    @MKSundaram 3 роки тому

    Will Merge Sort sort 2D Matrix?

  • @JapotjapotGalit
    @JapotjapotGalit Рік тому

    Can i get the code to copy

  • @AnujKumar-pt9tk
    @AnujKumar-pt9tk 3 роки тому

    While running code on leetcode ,it is showing addresssanitization: error stack overflow on address......plz anyone help me with this

  • @sharifajmir
    @sharifajmir 3 роки тому +1

    I just stop video and suscribe execpt i could do any thing

  • @prabaljainn
    @prabaljainn 4 роки тому +3

    Instead of saying "I think it works, please say that the "scope is limited". 8 : 54

  • @saikrishnamodhupalli9182
    @saikrishnamodhupalli9182 4 роки тому +1

    Bro iam getting segmentation fault iam compiling in terminal

    • @SimpleSnippets
      @SimpleSnippets  4 роки тому

      Some internal issue. check the code link that I have shared in the video description ✌

  • @GeorgeFlorian12
    @GeorgeFlorian12 3 роки тому +3

    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"

    • @ashishbhardwaj9693
      @ashishbhardwaj9693 3 роки тому

      for me it compiled for smaller array but it also gives segmentation fault for big array size not a good idea to use.

    • @ribhusengupta9967
      @ribhusengupta9967 2 роки тому

      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

    • @mohdfaraz4306
      @mohdfaraz4306 2 роки тому

      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

  • @everythingcelebrity6296
    @everythingcelebrity6296 4 роки тому +1

    Dude also make a video on hashing

  • @nomank8274
    @nomank8274 2 роки тому

    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

    • @abinanthanva289
      @abinanthanva289 Рік тому +1

      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

  • @meghamalusare1203
    @meghamalusare1203 3 роки тому

    I want to join your classes. If its possible plz let me know.

  • @shyamsundard5824
    @shyamsundard5824 Рік тому

    Bro please help me.What can be done to sort the array in descending order

    • @abinanthanva289
      @abinanthanva289 Рік тому

      do the same algorithm and reverse it, that's a quick fix

  • @abhishekbose5613
    @abhishekbose5613 4 роки тому +2

    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?

    • @SimpleSnippets
      @SimpleSnippets  4 роки тому

      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. ✌

    • @abhishekbose5613
      @abhishekbose5613 4 роки тому +1

      @@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!

    • @SimpleSnippets
      @SimpleSnippets  4 роки тому +1

      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

    • @abhishekbose5613
      @abhishekbose5613 4 роки тому

      I've mailed you! Thank you so much!!!

    • @rajparmar1622
      @rajparmar1622 4 роки тому

      Yeah .. im getting segmentation fault

  • @TheAsdasdasfasas
    @TheAsdasdasfasas 3 роки тому

    Why is the size inside the merge function (r-1)+1, can't you directly put r instead?

    • @akileshkumarb7750
      @akileshkumarb7750 3 роки тому +1

      ( R - L ) + 1

    • @ZhenZhou700
      @ZhenZhou700 3 роки тому +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

    • @XxDeAtHxMOnKeYxX
      @XxDeAtHxMOnKeYxX 2 роки тому

      @@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

  • @khurramsaeed1999
    @khurramsaeed1999 2 роки тому

    PLEASE USE DARKMODE PLEASE

  • @javedakbar5375
    @javedakbar5375 4 роки тому

    why it was not in the list?

  • @issanijem5248
    @issanijem5248 2 роки тому

    cos imak

  • @ahmadferozarshad1354
    @ahmadferozarshad1354 2 роки тому

    Bhai Jaan plzzz Urdu men perhaya karen🙏🙏🙏🙏

  • @bruhbruh8137
    @bruhbruh8137 3 роки тому

    the code is totally wrong, you try to insert 9 7 5 8 6.

    • @adeniyiadeniran6029
      @adeniyiadeniran6029 3 роки тому

      yeah it does not work for all input and even negative numbers

  • @anas_tabassum
    @anas_tabassum 3 роки тому

    Can anyone explain that where swapping is happening at sub levels 🤔

    • @TheMrMelodramatic
      @TheMrMelodramatic 3 роки тому +2

      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