Friday, 26 January 2018

Bubble Sort

Bubble sort changes the postion of numbers or changing an unordered sequence into an ordered sequence.
 
Bubble sort follows a simple logic. It compares adjacent elements in a loop and swaps them if they are not in order.
 
Bubble sort is named this way because, in this sorting method, the smaller elements gradually bubble up to the top of the list.
 
Bubble sort has worst-case and average complexity both О(n2), where n is the number of items being sorted.
 
Exp: 

int[] array = { 30, 20, 50, 40, 10 };

Sort array using bubble sort in ascending order or descending order.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Bubble_Sort
{
    static class BubbleSort
    {
        static public void SortArrayAscendingOrder(int[] array)
        {
            Console.WriteLine("Unsorted array before bubble sort.");
            foreach (var item in array)
                Console.WriteLine(item);
            

            Console.WriteLine("Start bubble sort.");
            int tempVariable = 0;
            for (int i = 0; i < array.Length; i++)
            {
                for (int j = i+1; j < array.Length; j++)
                {
                   //compare element values
                   if(array[i] > array[j])
                   {
                        tempVariable = array[i];
                        array[i] = array[j];
                        array[j] = tempVariable;
                   }
                }
            }

            Console.WriteLine("Sorted array using bubble sort");
            foreach (var item in array)
                Console.WriteLine(item);
        }

        static public void SortArrayDescendingOrder(int[] array)
        {
            Console.WriteLine("Unsorted array before bubble sort.");
            foreach (var item in array)
                Console.WriteLine(item);
          
            Console.WriteLine("Start bubble sort.");
            int tempVariable = 0;
            for (int i = 0; i < array.Length; i++)
            {
                for (int j = array.Length-1 ; j > i; j--)
                {
                    //compare element values
                    if (array[i] < array[j])
                    {
                        tempVariable = array[i];
                        array[i] = array[j];
                        array[j] = tempVariable;
                    }
                }
            }

            Console.WriteLine("Sorted array using bubble sort in descending order.");
            foreach (var item in array)
                Console.WriteLine(item);
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            int[] array = { 30, 20, 50, 40, 10 };
            BubbleSort.SortArrayAscendingOrder(array); //10,20,30,40,50

            BubbleSort.SortArrayDescendingOrder(array); //50,40,30,20,10
            Console.ReadLine();
        }
    }

}





No comments:

Post a Comment