Hi Ravi, I guess you are talking about 6:03. Outer loop is running from 1 to n-1 (we could have run from 0 till n-2 also) which is n-1 times. If you bubble up n-1 elements, last one - nth one will automatically be in place. So, no need to run n time. Inner loop is running from 0 till n-2. It's again n-1 times. So, it looks correct to me.
I think I have a short attention span and I can get tired very quickly. And direct teaching in school is just too slow for me as teachers just try to explain every single detail. Most UA-cam videos are just short and have enough information so I understand them almost immediately.
I can not even fathom how much effort would be needed to make something like this, and it is freely available! I don't know if any of you have noticed, but he is using MS Paint. And I didn't know it could ever be used to make something useful, let alone this. I always used to undermine myself, considering that I am not a 'programmer'(never really understood these simple concepts, due to shitty teachers), but in the last few weeks, I've learnt so much only because of you and other good content on the internet. And now I proudly say I enjoy programming and I am a programmer!
The video is perfect. Thanks for the ultimate collection. One check is that outer loop runs n-1 times and inner loop is an arithmetic progression n*(n-1)/2 instead of n-1. The total being n+ (n*(n-1)/2= O(n^2). Just wanted to point out. Let me know if my consideration is wrong.
I think outer loop shouldn't start with one because if k won't be starting at zero then the inner loop will go only n-k-1 i.e if k = 1 it'll go up to n-2 times if there's a small variable at the end of the array then it won't be able to reach the end to compare as it'll end one before the last one. For example this below code : // bubble - sort class BubSort{ void sorting(int A[],int n){ for(int k = 1 ; k < n - 1 ; k + + ) { boolean flag = false; for (int i = 0 ; i < n - k - 1 ; i + + ) { if (A [ i ] > A [ i + 1 ] ) { int temp = A [ i + 1 ] ; A [ i + 1 ] = A [ i ] ;
A [ i ] = temp; flag = true; } } if (flag == false) break; } for ( int i = 0 ; i < n ; i + + ) { System.out.println(A [ i ] ) ; } } public static void main(String...ssg){ int A[] = {42,23,54,76,23,6,34,8,4,2,3,1}; BubSort b1 = new BubSort(); b1.sorting(A,A.length); } } output - 2 3 4 6 8 23 23 34 42 54 76 1
Best explanation on bubble sort. I have checked out lot of videos but, I was still not clear about the concept. Finally, this video helped me. Thank you so much. Excellent work.
Hi Animesh Sir, You are doing tremendous work.You explain very well, so far I have seen many videos in Algos & DS but these vids are the best one, small compact and fully explained !! All the very best for your mission, to literate the illiterate Engineering students.
For people wondering why n-2 and not n-1 ----- Explaination - In an array, "n" typically represents the total number of elements in the array. So, "n-1" would refer to the index of the last element in the array since array indexing usually starts from 0. For example, let's say we have an array with 5 elements. "n" would be 5, and "n-1" would be 4, representing the index of the last element in the array. So if we have an array called `arr`, `arr[4]` would be the last element.
thankyou so much my code school, it helped me a lot... it is much better than hand books... and through these videos it is easier to understand and remember all the things.. Thank you
Actually, if you start from 0 and your size of the array is n. Then n-1 will allow you to go to a[i+1]. You're missing an element if you only go to n-2.
I want solutions for below given problem, kindly help: 1- Why are we interested in worst case analysis? 2- What do you understand by rate of growth or order of growth? Why it is important in analysis of an algorithm? 3- For following set of functions, indicate whether f = O(g), f = Ω(g), or both. 1) f(n) = n − 10, g(n) = n + 10 2) f(n) = 10n^2, g(n) = 3n^3 + n^2 4- For f(n) = n^2 + 2n^3 − 100nlogn + 10, provide the simplest possible function g(n) such that f(n) = Θ(g(n)). 5- Show that n log n is O(n^2) but that n^2 is not O(nlogn). 6- Prove or disprove the following: √n = O(logn) 7- Use a recursion tree to determine a good asymptotic upper bound on the following recurrences. 1) T(n) = 2T(n − 1) + 1 2) T(n) = 4T(n/2) + cn 8- Consider the recursive binary search algorithm for finding a number in a sorted array. (a) Give recurrence for the worst-case running times of binary search algorithm. (b) Use a recursion tree to determine a good asymptotic bound for the recurrence tree. 9- The ternary search algorithm locates an element in a list of increasing integers by successively splitting the list into three sub lists of equal (or as close to equal as possible) size, and restricting the search to the appropriate piece. (a) Give recurrence for the worst-case running time of the algorithm. (b) Use a recursion tree to determine a good asymptotic bound for the recurrence tree. 10- Provide recurrence relation and a tight asymptotic bound for the following code. long power ( long x , long n ) if ( n == 0 ) return 1; else return x * power ( x , n−1);
Nice presentation. Thanks a lot. Seems like, learned bubble sort newly after completing graduation about 10 years ago. One thing, at 9:45 will it break the inner loop or outer? Sorry for my ignorance.
@@emi.grigore any programming code is a sort of replica to their pseudo code, so we should not do logical error in writing pseudo code or it can hamper the chance of writing the correct code. No offence to any one.
If im not wrong sir, I believe you are trying to call an external swap() function in this code, and in that case a default call by value does not work, I think you should pass the values by reference, for the actual array to be sorted within the main() function. Hence it should be swap(&a[I],&a[I+1]).
Hi Rakesh, You can choose to start with whatever. In the end, your code should not be buggy. The pseudo-code in this lesson is good. You can try it out in a real program.
Remember this obsession Selection sort and bubble sort requires same no of comparisons n(n-1)/2 But in worst case bubble requires n(n-1)/2 swap rather Selection required n-1 swap ..... in my one interview question was asked Like which Sorting Algorithm is best If we consider only Swapping in complexity?
The given array is arr = {1,2,4,3}. Bubble sort is used to sort the array elements. How many iterations will be done to sort the array? ***How the answer comes out to be 4.*** Detailed explanation would be appreciated.
Finally, a tutorial explaining not only the logic of the algorithm, but the logic behind it's iteration. Thanks a bunch!
This is what we need in youtube. Great lecture with great timing.Good job.
Dude this 10 mins video is worth my uni's multiple hour lectures. Very helpful! Thanks!
Hi Ravi,
I guess you are talking about 6:03. Outer loop is running from 1 to n-1 (we could have run from 0 till n-2 also) which is n-1 times. If you bubble up n-1 elements, last one - nth one will automatically be in place. So, no need to run n time. Inner loop is running from 0 till n-2. It's again n-1 times. So, it looks correct to me.
O
Line where first for is will be executed n times,not n-1
back when youtube didn't have the reply feature huh
May is confusion with looping where less than symbol. < n- 1 is nothing but up to n-2 inclusive
int[] arr = {0, 2, 1, 2, 0};
int n = arr.length, temp;
for(int k=0; k< n - 1; k++ ) {
for (int i = 0; i < n - 1; i++) {
if (arr[i] > arr[i + 1]) {
temp = arr[i];
arr[i] = arr[i + 1];
arr[i+1] = temp;
}
System.out.println(Arrays.toString(arr));
}
}
@Ganesh K in ur prgm second loop can be optimised like: for(int i=0;i
This channel is a true Gem For Students. Got an exam tomorrow. Would have been really difficult without You. Thank You so much for this!!!!!
i swear this is way better than some of the professors video in schools
on the gang!
I think I have a short attention span and I can get tired very quickly. And direct teaching in school is just too slow for me as teachers just try to explain every single detail. Most UA-cam videos are just short and have enough information so I understand them almost immediately.
Mine just straight up doesn't teach anything
100% true.❤❤❤
your explanation is perfectly clear and the coding is really simple. Thank you so much!
I can not even fathom how much effort would be needed to make something like this, and it is freely available!
I don't know if any of you have noticed, but he is using MS Paint. And I didn't know it could ever be used to make something useful, let alone this.
I always used to undermine myself, considering that I am not a 'programmer'(never really understood these simple concepts, due to shitty teachers), but in the last few weeks, I've learnt so much only because of you and other good content on the internet. And now I proudly say I enjoy programming and I am a programmer!
This is the best channel for learning algorithm and data structure. I am coming back here after 5 years
The video is perfect. Thanks for the ultimate collection. One check is that outer loop runs n-1 times and inner loop is an arithmetic progression n*(n-1)/2 instead of n-1. The total being n+ (n*(n-1)/2= O(n^2). Just wanted to point out. Let me know if my consideration is wrong.
very helpful thank you so much. this is honestly the most clear cut explanation on youtube
You are the best presenter i have ever seen. Very much useful. This kind of tutorials what we expect. Great job bro.
You are the best explainer I have ever seen
When you reach for O(n), i'm shocked because I had never seen this version of bubble sort .. hatsoff to you.
This is simplified enough for a comprehension, Thanks !!!!!!!
Thanks so much! subscribed! This is so much more helpful than my text book :D
thatswhatsup0493 You are most welcome :)
Thanks Bro! Nice efforts.. and I like the variations you explained how we improve with flag...etc../\
boss i feel like dumb dumb dumb when u talk about big(o).I need more help with it.Any suggestions?
In all of the videos the voice and the language is pretty clear and sharp so there's no need for sub-titles.
Your explanation is by far the best. I wish I could explain to my students in a similar fashion. Keep posting. Good work.
Much better than my prof's lecture! Thanks!
Even it is 9 year old . This video was very helpful.
Thanks for sharing you've got a new subscriber :)
Thank you so much for the series of sorting algorithms.
I request you to give explanation on heap sort.
You have to learn tree chapter first if you want to learn heap sort
Search for "udiprod" on UA-cam, they have a great explanation.
Brilliant explanation !! Need teachers and mentors like you , that will change the whole learning process !!
Thanks 😀✌️
maybe i'll teach my prof tomorrow , thank you bro , it was really clear. :)
Best big o notation explanation I've seen so far and its not even a big o analysis video
I think outer loop shouldn't start with one because if k won't be starting at zero then the inner loop will go only n-k-1 i.e if k = 1 it'll go up to n-2 times if there's a small variable at the end of the array then it won't be able to reach the end to compare as it'll end one before the last one. For example this below code :
// bubble - sort
class BubSort{
void sorting(int A[],int n){
for(int k = 1 ; k < n - 1 ; k + + ) {
boolean flag = false;
for (int i = 0 ; i < n - k - 1 ; i + + ) {
if (A [ i ] > A [ i + 1 ] ) {
int temp = A [ i + 1 ] ;
A [ i + 1 ] = A [ i ] ;
A [ i ] = temp;
flag = true;
}
}
if (flag == false) break;
}
for ( int i = 0 ; i < n ; i + + ) {
System.out.println(A [ i ] ) ;
}
}
public static void main(String...ssg){
int A[] = {42,23,54,76,23,6,34,8,4,2,3,1};
BubSort b1 = new BubSort();
b1.sorting(A,A.length);
}
}
output - 2 3 4 6 8 23 23 34 42 54 76 1
right also flag variable when included and unsorted array is passed the output obtained is not correct
this videos are much more better than the paid ones thank you sir you are really doing great work
Really smart to focus on constructing the inner-loop first. It really makes everything more clear.
@9:19 i think the inner loop will be executed n-1 times when there is an already sorted array as input
The outer loop must execute from 0 t0 n-1, otherwise last element will not be sorted.
code:
for(int k=0;k
best videos i have ever found for dsa
Brilliant explanation of BUBBLE SORT so far!
Best explanation on bubble sort. I have checked out lot of videos but, I was still not clear about the concept. Finally, this video helped me. Thank you so much. Excellent work.
You explain it sooo much better than my professor, I don't know how my professor became a professor. OMG thank you
best video on bubble sort ,concise and clear
Your Chanel Is Best For Pograming
Hi Animesh Sir,
You are doing tremendous work.You explain very well, so far I have seen many videos in Algos & DS but these vids are the best one, small compact and fully explained !!
All the very best for your mission, to literate the illiterate Engineering students.
For people wondering why n-2 and not n-1 -----
Explaination - In an array, "n" typically represents the total number of elements in the array. So, "n-1" would refer to the index of the last element in the array since array indexing usually starts from 0.
For example, let's say we have an array with 5 elements. "n" would be 5, and "n-1" would be 4, representing the index of the last element in the array. So if we have an array called `arr`, `arr[4]` would be the last element.
question in 9:05(I feel it should be like this ): if(flag == 1) break ;
not even one swap if flag ==0; then doesn't that mean we need to swap?
thankyou so much my code school, it helped me a lot... it is much better than hand books... and through these videos it is easier to understand and remember all the things..
Thank you
What an incredible explanation
Great explanation..... Exactly what tiny brains like me required :)
This would easily qualify for priced courses. Very good presentations.
I feel like being back in school reading stuff on the almighty overhead projector
Great explanation. Crisp, simple and to the point!!
Thank you very much....this code I was trying to mug up ..now you made it's concept really simple and understandable
you are great you make me feel not just to understand rather to feel.
Best channel for computer science student. Thanks for sharing knowledge to us🙏🙏
ddf
Actually, if you start from 0 and your size of the array is n. Then n-1 will allow you to go to a[i+1]. You're missing an element if you only go to n-2.
No
in our language "Supiriiiii.....!!! "Great tutorial ... I've cleared many things............
Thanks a lot man i tried a lot pf vidoes to understand it and this is what helped me understand how it really works
i think u made mistake... A[0,1,2,....n-1]
for i
Best explanation.... I am looking for such tutorial.... Thanks :) and keep it up...
I want solutions for below given problem, kindly help:
1- Why are we interested in worst case analysis?
2- What do you understand by rate of growth or order of growth? Why it is important in analysis of an algorithm?
3- For following set of functions, indicate whether f = O(g), f = Ω(g), or both.
1) f(n) = n − 10, g(n) = n + 10
2) f(n) = 10n^2, g(n) = 3n^3 + n^2
4- For f(n) = n^2 + 2n^3 − 100nlogn + 10, provide the simplest possible function g(n) such that f(n) = Θ(g(n)).
5- Show that n log n is O(n^2) but that n^2 is not O(nlogn).
6- Prove or disprove the following: √n = O(logn)
7- Use a recursion tree to determine a good asymptotic upper bound on the following recurrences.
1) T(n) = 2T(n − 1) + 1
2) T(n) = 4T(n/2) + cn
8- Consider the recursive binary search algorithm for finding a number in a sorted array.
(a) Give recurrence for the worst-case running times of binary search algorithm.
(b) Use a recursion tree to determine a good asymptotic bound for the recurrence tree.
9- The ternary search algorithm locates an element in a list of increasing integers by successively splitting the list into three sub lists of equal (or as close to equal as possible) size, and restricting the search to the appropriate piece.
(a) Give recurrence for the worst-case running time of the algorithm.
(b) Use a recursion tree to determine a good asymptotic bound for the recurrence tree.
10- Provide recurrence relation and a tight asymptotic bound for the following code.
long power ( long x , long n )
if ( n == 0 )
return 1;
else
return x * power ( x , n−1);
Best presentation I have ever seen
Thank you sir for explanation ❤️
But what made me comment here is
You sound exactly like a krsn katha vachak (i don't remember his name)
hi, just one small mistake: in 6:12 the T(n) = (n-1) * (n-2) * C ; I think that's your meaning there.
Nice presentation. Thanks a lot. Seems like, learned bubble sort newly after completing graduation about 10 years ago.
One thing, at 9:45 will it break the inner loop or outer? Sorry for my ignorance.
The outer loop. That if condition should be placed after the inner loop.
According to views of this playlist seems like merge sort is a hot topic.
Nice explanation!ur voice is osm😅
The way u explain the algo is awsm!
Very good explanation and tutorial on time efficiency.
This is an amazing video. Bravo.
oh my god .after watching your video I am getting confident. I felt like nothing is there in coding
Thanks for such depth explaination
Subscribed after looking only one video.
Awesome explanations.
Excellent explanation ♥️♥️
nice explamnation
I am taking Master in Computer Science
I will have a course Advance Alogrithms
so I am reviewing some sort algorithms
Great viddeo.
A minor note that the loops look like this:
for(int k = 1; k < size; k++)
for(int i = 0; i < size - k; i++){
pseudocode and C++ are 2 diff things ;) so his loops are fine, because the title is bubble sort algorithm, not C++ program. No offense :D
Thanks man for the c++ for loop
watch till the end, he mentioned that.
U r ri8 I also noticed in b/w...there is a minor mistake (n-k-1) must bi replaced with (n-k) in the 2nd for loop..!!
@@emi.grigore any programming code is a sort of replica to their pseudo code, so we should not do logical error in writing pseudo code or it can hamper the chance of writing the correct code. No offence to any one.
awesome tutorial sir, thank you 👍👍
Really good explanation
very simple and abstracted, thank you
If im not wrong sir, I believe you are trying to call an external swap() function in this code, and in that case a default call by value does not work, I think you should pass the values by reference, for the actual array to be sorted within the main() function. Hence it should be swap(&a[I],&a[I+1]).
May ALLAH give you more knowledge. Thank you bro.
This is very useful video and easy to understand
I think 6:14 should be cn^2 - 2cn + 1c. i.e., the last part is not 1, but 1c.
I was thinking so too
BEST EXPLAINATION !
thanks bro, this is so helpful
thank you so much for this series
Feeling lucky to have found your channel!!!! Subscribed :D
Thank you for the efficient lecture.
Hi Rakesh,
You can choose to start with whatever. In the end, your code should not be buggy. The pseudo-code in this lesson is good. You can try it out in a real program.
Very well explained, subbed!
Thank you for your nice explanation
Very nice explanation sir...
It was sooo goood .Thanks for your videos
Excellent explanation
Thanks for the simple explanation.
Excellent explanation!
Remember this obsession
Selection sort and bubble sort requires same no of comparisons n(n-1)/2
But in worst case bubble requires n(n-1)/2 swap rather Selection required n-1 swap
..... in my one interview question was asked Like which Sorting Algorithm is best If we consider only Swapping in complexity?
Thanks 🙏
k should start from 0 to n-1,
Btw great videos!!
why?
nvm gottit
Great explanation!
The first loop should be from k= 0 to (n-1) right??
I get that this is very old now but surely the time expression is cn^2-2cn+c rather than cn^2-2cn+1. Anyway, was helpful thanks.
Hello ,
Thank you soo much for creating this video!!
It makes sorting algorithms seem soo easy and very understanding .i subscribed !!!
Thank you !!!
Great implementation of the flag. It makes a major difference.
Thank u dude..u r a genius
The given array is arr = {1,2,4,3}. Bubble sort is used to sort the array elements. How many iterations will be done to sort the array?
***How the answer comes out to be 4.***
Detailed explanation would be appreciated.
You made it easy . Thanks a lot :)
you rock @mycodeschool !!
I have a doubt at 6:55
(n-1) *(n-1)*c=cn2+2cn+1 or cn2+2cn+c