11
BUBBLE SORT : Bubble sort is a simple sorting algorithm also called Sinking algorithm which just goes through a set of data ( list of numbers or characters) and compares each member with its right neighbour . The pass through the list is repeated until no more swaps are needed , which indicates that the list is sorted . Although the algorithm is simple , It is too slow and impractical for a large set of data. PSEUDOCODE : bubble(A,n) while n>0 // n is the no of elements k=0 for i=1 to n-1 if (A[i-1] > A[i]) swap A[i-1],A[i] k=i n=k; WORKING : The bubble sort working with an example : A[] = {9,3,6,1,8,4,2} The length of the array is 7 i.e. let n=7. 9 3 6 1 8 4 2 For references : http://comsciguide.blogspot.com/

Bubble

Embed Size (px)

DESCRIPTION

Sorting places a important role in programs.Bubble sort is a simple and easy sorting.http://comsciguide.blogspot.com/

Citation preview

  • BUBBLE SORT :

    Bubble sort is a simple sorting algorithm also called Sinking

    algorithm which just goes through a set of data ( list of numbers or characters)

    and compares each member with its right neighbour . The pass through the list

    is repeated until no more swaps are needed , which indicates that the list is

    sorted . Although the algorithm is simple , It is too slow and impractical for a

    large set of data.

    PSEUDOCODE :

    bubble(A,n)

    while n>0 // n is the no of elements

    k=0

    for i=1 to n-1

    if (A[i-1] > A[i])

    swap A[i-1],A[i]

    k=i

    n=k;

    WORKING :

    The bubble sort working with an example :

    A[] = {9,3,6,1,8,4,2}

    The length of the array is 7 i.e. let n=7.

    9 3 6 1 8 4 2

    For references : http://comsciguide.blogspot.com/

  • For 1st iteration :

    9 3 6 1 8 4 2

    3 9 6 1 8 4 2

    3 6 9 1 8 4 2

    3 6 1 9 8 4 2

    3 6 1 8 9 4 2

    3 6 1 8 4 9 2

    3 6 1 8 4 2 9

    After 1st iteration we will get a largest element (9) at the last index

    of the array . So for the 2nd iteration we need not to include it , because as in

    the sorted list , the last element will be the largest one.

    For 2nd iteration :

    3 6 1 8 4 2

    3 6 1 8 4 2

    For references : http://comsciguide.blogspot.com/

  • 3 1 6 8 4 2

    3 1 6 8 4 2

    3 1 6 4 8 2

    3 1 6 4 2 8

    Here u can observe the second largest element (8) in the array is in it's

    place (at n-2 index).

    For 3rd iteration :

    3 1 6 4 2

    1 3 6 4 2

    1 3 6 4 2

    1 3 4 6 2

    1 3 4 2 6

    For 4th iteration :

    For references : http://comsciguide.blogspot.com/

  • 1 3 4 2

    1 3 4 2

    1 3 4 2

    1 3 2 4

    For 5th iteration

    1 3 2

    1 3 2

    1 2 3

    For 6th iteration :

    1 2

    As here , there is no swaps , IF condition won't execute . So n=k i.e.

    (n=1) and the program will stop. Finally the sorted array is

    1 2 3 4 6 8 9

    PERFORMANCE :

    Bubble sort has worst-case and average complexity both (n2),

    For references : http://comsciguide.blogspot.com/

  • where n is the number of items being sorted. There exist many sorting

    algorithms with substantially better worst-case or average complexity of

    O(nlogn) . Therefore, bubble sort is not a practical sorting algorithm when n is

    large.

    The positions of the elements in bubble sort will play a large part in

    determining its performance . Large elements at the beginning of the list do not

    pose a problem , as they are quickly swapped . Small elements towards the end

    however, move to the beginning extremely slowly. This has led to these types of

    elements being named rabbits and turtles respectively.

    It has a special feature , that the largest element( at last index ) gets

    sorted first, with smaller elements taking longer to move to their correct

    positions.

    The only significant advantage that bubble sort has over most other

    implementations, even quicksort, but not insertion sort, is that the ability to

    detect that the list is sorted in efficient way .When the list is already sorted

    (best-case), the complexity of bubble sort is only O(n). By contrast, most other

    algorithms, even those with better average-case complexity, perform their

    entire sorting process on the set and thus are more complex.

    ANALYSIS :

    U will be knowing that we do sort for a set of numbers.

    Suppose if u have given array of elements which is already sorted and

    one element is added to this..U will be having doubt where we have to

    For references : http://comsciguide.blogspot.com/

  • add this element(at the begining or ending of array)..What is that

    complexity for this sorting, if we add new element at the last..?

    Takealookwithanexample:

    Let's take this array which is already sorted.

    1 2 3 4 6 8 9

    Considerthecaseofaddingthenewnumber(assume5)at

    thebeginingofthearray.

    The new array becomes

    5 1 2 3 4 6 8 9

    For 1st iteration :

    5 1 2 3 4 6 8 9

    1 5 2 3 4 6 8 9

    1 2 5 3 4 6 8 9

    1 2 3 5 4 6 8 9

    For references : http://comsciguide.blogspot.com/

  • 1 2 3 4 5 6 8 9

    // the array is sorted and k=5 ..so n=5

    1 2 3 4 5 6 8 9

    1 2 3 4 5 6 8 9

    1 2 3 4 5 6 8 9

    FOR 2ND ITERATION :

    1 2 3 4 5

    1 2 3 4 5

    1 2 3 4 5

    1 2 3 4 5

    As for 2nd iteration , no swaping occurs i.e. k=n=1. So there is no chance

    of 3rd iteration and the program exits.

    Nowconsiderthecaseofaddingthenewnumber(assume5)

    attheendingofthearray.

    The new array becomes

    For references : http://comsciguide.blogspot.com/

  • 1 2 3 4 6 8 9 5

    For 1st iteration :

    1 2 3 4 6 8 9 5

    1 2 3 4 6 8 9 5

    1 2 3 4 6 8 9 5

    1 2 3 4 6 8 9 5

    1 2 3 4 6 8 9 5

    1 2 3 4 6 8 9 5

    1 2 3 4 6 8 9 5

    1 2 3 4 6 8 5 9

    For 2nd iteration :

    1 2 3 4 6 8 5 9

    1 2 3 4 6 8 5 9

    For references : http://comsciguide.blogspot.com/

  • 1 2 3 4 6 8 5 9

    1 2 3 4 6 8 5 9

    1 2 3 4 6 8 5 9

    1 2 3 4 6 8 5 9

    1 2 3 4 6 5 8 9

    1 2 3 4 6 5 8 9

    For 3rd iteration :

    1 2 3 4 6 5 8 9

    1 2 3 4 6 5 8 9

    1 2 3 4 6 5 8 9

    1 2 3 4 6 5 8 9

    1 2 3 4 5 6 8 9

    For references : http://comsciguide.blogspot.com/

  • 1 2 3 4 5 6 8 9

    1 2 3 4 5 6 8 9

    1 2 3 4 5 6 8 9// the array is sorted

    and k=7 ..so n=7

    For 4th iteration :

    1 2 3 4 5 6 8 9

    1 2 3 4 5 6 8 9

    1 2 3 4 5 6 8 9

    1 2 3 4 5 6 8 9

    1 2 3 4 5 6 8 9

    1 2 3 4 5 6 8 9

    For references : http://comsciguide.blogspot.com/

  • 1 2 3 4 5 6 8 9

    1 2 3 4 5 6 8 9

    As for 4th iteration , no swaping occurs i.e. k=n=1. So there no

    chance of 5th iteration and the program exits.

    Fromtheanalysis,weobservethatbyaddinganelement

    atthefrontofindex,thecostofrunningtimeislessascomparedto

    thecostofrunningtimeforthecaseofaddingelementatthelast.

    IN PRACTICE :

    Bubble sort is one of the simplest sorting algorithm to implement

    and easy to understand . Due to its simplicity, bubble sort is often used to

    introduce the concept of an algorithm, or a sorting algorithm, to introductory

    students.

    But due its O(n2) complexity , It will not be efficient for the case of

    large lists .Its O(n2) complexity means that its efficiency decreases dramatically

    on lists of large number of elements . Even among simple O(n2) sorting

    algorithms like insertion sort are usually considerably more efficient.

    For references : http://comsciguide.blogspot.com/