EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

Bubble Sort in C#

By Aanchal SinghAanchal Singh

Home » Software Development » Software Development Tutorials » C# Tutorial » Bubble Sort in C#

Bubble Sort in C#

Introduction to Bubble Sort in C#

The following article provides an outline on Bubble Sort in C#. Bubble sort is a sorting algorithm which is considered to be the simplest algorithm, which places the elements or numbers in a particular order and these elements are eventually put to their sorted proper location in the array.

Bubble sort Algorithm

The basic concept upon which bubble sort works is that an array is taken into consideration. This array is iterated from the first index to the last index. While traversing the array is compared with the adjacent elements and swapped if they are present in the wrong order. This means if the numbers are smaller than the current element at a particular index then they will be swapped. This process is repeated until the array is completely sorted. It takes place in the form of passes.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Let us take into consideration an array of seven random numbers and sort them:

Bubble sort works in the form of passes. These passes take two adjacent numbers at a single time and then compare those two numbers. If the numbers present are said to be N. Then the number of passes required to sort a data set are N – 1. Each pass sorts the data considering those two numbers and reiterates the sequence till all numbers are not sorted in the expected way.

Pass 1:

90   76   45   93   68   13   98

In the first pass the first two numbers are compared. Here it will compare 90 with 76. 90 is greater than 76 hence it will be swapped.

76   90   45   93   68   13   98

Now 90 will be compared with 45. (0 is greater than 45 as well. Hence this will be getting swapped with 45.

Popular Course in this category
C# Training Program (6 Courses, 17 Projects)6 Online Courses | 17 Hands-on Project | 89+ Hours | Verifiable Certificate of Completion | Lifetime Access
4.6 (8,847 ratings)
Course Price

View Course

Related Courses
ASP.NET Training (8 Courses, 19 Projects).NET Training Program (4 Courses, 19 Projects)

76   45   90   93   68   13   98

Now, the numbers 90 and 93 are already in order. They will not be swapped and will remain as it is. This pass will hence be stopped as per the algorithm.

Pass 2:

76   45   90   93   68   13   98

This pass will again start with the first number in the array. This means the sorting will now start from 76. 76 will be compared with 45. 45 being lesser than 76 will be swapped with 76.

45   76   90   93   68   13   98

Now 76 and 90 will be checked. They are already in correct order hence there will be no changes in the array.

In this way the traversing will happen till the end of the array.

Algorithm of Bubble Sort

  • BubbleSort(Array : list of sortable items)
  • N= Array.Length
  • Set Flag := True
  • Repeat Steps from 3 to 5 for I = 1 to N-1 while Flag == true
  • Set Flag := False
  • Set i:=0
  • Repeat while i<N-1 [Executing pass]
  • (a) If Array[i+1]>Array[i], then:
    Swap Array[i] and Array[i+1] Set Flag:= True
  • (b) Set i :=i+1
  • Exit

Examples of Bubble Sort in C#

Given below are the examples:

Example #1

C# program to implement Bubble sort.

Code:

using System;
class Bubble
{
static void bubbleSrt(int []arr)
{
int num = arr.Length;
for (int i = 0; i < num - 1; i++)
for (int j = 0; j < num - i - 1; j++)
if (arr[j] > arr[j + 1])
{
// swap tmp and arr[i] int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
/* Printing the array */
static void printIt(int []arr)
{
int n = arr.Length;
for (int i = 0; i < n; ++i)
Console.Write(arr[i] + " ");
Console.WriteLine();
}
// Main method
public static void Main()
{
int []arr = {90, 76, 45, 93, 68, 13, 98};
bubbleSrt(arr);
Console.WriteLine("Sorted array");
printIt(arr);
}
}

Output:

bubble sort in c # 1

The program above has a method defined to sort the numbers using Bubble sort. Bubblesort has two for loops which traverse the array and store the number to be swapped in a temporary variable tmp. This tmp value is then swapped with the position where it should be with the help of index j. Another method is used to print the sorted array. Bubble sort makes use of n – 1 passes to sort the array.

The Bubble sort can be implemented for descending order as well.

Example #2

The C# program to implement Bubble sort in descending order can be as below:

Code:

using System;
public class BubbleSrt
{
public static void Main(string[] args)
{
int[]arr=new int[10]{23,98,45,12,9,16,65,74,34,29};//Array created with 10 unsorted numbers
bubblesort(arr,10);
int a;
for(a = 0; a < 10; a++)
Console.Write(arr[a]+"\t");//Printing the array after sorting in descending order
Console.ReadLine();
}
//bubble sort
static void bubblesort(int[] data, int n)
{
int a;
int b;
for(a = 0; a < n; a++)
for (b = n-1; b > a; b--)
if (data[b] > data[b-1])//Condition to arrange array in descending order
{
int temp = data[b];
data[b]=data[b-1];
data[b-1]=temp;
}
}
}

Output:

bubble sort in c # 2

Here, we are sorting the array in descending order. We have declared an array having ten numbers. After that we are calling the bubblesort function in main program and then printing it in descending order. The bubblesort function here has taken two variables for traversing the array. Here it is taking two for loops and traversing the array and comparing the values present in the array. The condition being data present at index b and index b – 1 will be compared. If the number present at b is greater then it will be swapped. This is being done in the inner for loop. Once it is swapped, it will continue until the end of the array.

Conclusion

Bubble sort is the simplest sorting method. It traverses the entire array and bubble pops the numbers which helps in swapping and bringing the array in correct sequence. It compares two adjacent numbers and pops those as and when they are not in the expected order. This sorting by using C# is very easy and can be done by using basic variables present in the array.

Recommended Articles

This is a guide to Bubble Sort in C#. Here we discuss the introduction, bubble sort algorithm, and examples. You may also have a look at the following articles to learn more –

  1. Python Sort List
  2. Python Sort Array
  3. Sorting in C#
  4. Bubble Sort Algorithm

All in One Software Development Bundle (600+ Courses, 50+ projects)

600+ Online Courses

50+ projects

3000+ Hours

Verifiable Certificates

Lifetime Access

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C sharp Tutorial
  • Advanced
    • Inheritance in C#
    • Exception Handling in C#
    • Types of Exception in C#
    • C# FileNotFoundException
    • C# NullReferenceException
    • C# OutOfMemoryException
    • C# StackOverflowException
    • Custom Exception in C#
    • What is Multithreading in C#
    • C# finally
    • C# System.IO
    • What is StringBuilder in C#
    • DataReader C#
    • BinaryWriter in C#
    • C# BinaryReader
    • TextWriter in C#
    • TextReader in C#
    • C# StringReader
    • C# StringWriter
    • C# StreamReader
    • C# StreamWriter
    • C# FileInfo
    • What is Design Pattern in C#?
    • Multithreading in C#
    • Sorting in C#
    • Bubble Sort in C#
    • C# SortedList
    • C# SortedSet
    • C# SortedDictionary
    • Abstract Class in C#
    • Access Modifiers in C#
    • C# Generics
    • Deserialization in C#
    • C# Thread
    • C# Thread Join
    • C# Thread Sleep
    • C# Thread Synchronization
    • C# Class
    • Sealed in C#
    • Sealed Class in C#
    • Polymorphism in C#
    • C# Call By Reference
    • Virtual Keyword in C# 
    • Yield Keyword in C#
    • Regular Expression in C#
    • C# Lambda Expression
    • C# Predicate
    • Convert Object to JSON C#
    • Checkbox in C#
    • C# MessageBox
    • Collections in C#
    • List in C#
    • C# LinkedList
    • Listbox in C#
    • Protected in C#
    • C# EventHandler
    • Private in C#
    • this Keyword in C#
    • Static Keyword in C#
    • C# Out Parameter
    • Assert in C#
    • C# Delegates
    • C# Interface
    • Generics in C#
    • Timer in C#
    • C# Serialization
    • Metadata in C#
    • C# Stack
    • C# Using Static
    • Queue in C#
    • C# File.Exists
    • C# Tuples
    • C# Create JSON Object
    • Partial in C#
    • C# readonly
    • C# Action Delegate
    • C# Await Async
    • C# Dictionary
    • IEnumerable C#
    • C# Data Grid View
    • C# Dynamic
    • Web Services in C#
    • C# Pattern Matching
    • C# Extension Methods
    • C# XmlSerializer
  • Basic
    • Uses Of C#
    • C# Versions
    • C# Data Types
    • Variables in C#
    • Namespaces in C#
    • C# Compilers
    • C# Keywords
    • Iterators in C#
    • Objects in C#
    • C# Object Dispose
    • C# object to XML
    • C# check object type
    • C# Object Serialization
    • Pointers in C#
    • C# Literals
    • C# Commands
    • C# Custom Attribute
    • Type Casting in C#
    • String vs String C#
    • C# Struct vs Class
  • Operators
    • Logical Operators in C#
    • Conditional Operators in C#
    • Bitwise Operators in C#
    • C# OR Operator
    • C# Ternary Operators
    • Operator Precedence in C#
  • Control Statement
    • C# if Statement
    • Else If in C#
    • Continue in C#
    • Break in C#
    • Switch Statement in C#
    • Goto Statement in C#
  • Loops
    • C# For Loop
    • C# While Loop
    • C# do-while loop
    • C# foreach Loop
  • Arrays
    • Arrays in C#
    • 2D Arrays in C#
    • C# Jagged Arrays
    • String Array in C#
    • C# Multidimensional Arrays
  • Constructor and Destructor
    • Constructor in C#
    • Copy Constructor in C#
    • Static Constructor in C#
    • Destructor in C#
  • overloading and overrideing
    • Overloading and Overriding in C#
    • Overloading in C#
    • Overriding in C#
    • Method Overloading in C#
    • Method Overriding in C#
    • Operator Overloading in C#
  • Functions
    • C# Functions
    • C# String Functions
    • Math Functions in C#
    • Recursive Function in C#
    • C# Anonymous Functions
    • C# Local Functions
    • Enum in C#
    • Trim() in C#
    • clone() in C#
    • C# random
    • C# String Format()
    • C# String Interpolation
    • C# StartsWith()
    • C# String IndexOf()
    • DateTime in C#
    • C# Nullable
    • C# nameof
    • C# checked
    • C# String PadLeft
    • Convert String to Double in C#
    • Convert int to String C#
    • String to Date C#
    • C# intern()
    • C# Stopwatch
    • C# DirectoryInfo
    • C# Compare()
    • C# Base
    • C# SOAP
    • Lock in C#
  • Programs
    • Patterns in C#
    • Swapping in C#
    • Palindrome in C#
    • Factorial in C#
    • Fibonacci Series in C#
    • Random Number Generator in C#
    • Prime Numbers in C#
    • Armstrong Number in C#
    • Reverse String in C#
  • Interview questions
    • C# Interview Questions and Answers
    • C# OOP Interview Questions
    • C# Design Pattern Interview Questions

Related Courses

C# Certification Training

ASP.NET Course

.NET Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C# Certification Training Learn More