Skip to main content

Bubble sort on linked list in java

Bubble sort in linked list

Java program for Bubble sort in linked list. Here more solutions.

// Java program for
// Bubble Sort For Linked List
class Node
{
	int data;
	Node next;
	public Node(int data)
	{
		this.data = data;
		this.next = null;
	}
}
public class LinkedList
{
	public Node head;
	// Class constructors
	LinkedList()
	{
		this.head = null;
	}
	// Add node at the beginning of linked list
	public void insert(int value)
	{
		// Create a new node
		Node node = new Node(value);
		// Add node at front
		node.next = this.head;
		// Make new head
		this.head = node;
	}
	// Display all elements
	public void display()
	{
		if (this.head != null)
		{
			Node temp = this.head;
			while (temp != null)
			{
				// Display node value
				System.out.print("  " + temp.data);
				// Visit to next node
				temp = temp.next;
			}
		}
		else
		{
			System.out.println("Empty Linked list");
		}
	}
	// Perform bubble sort in single linked list
	public void bubbleSort()
	{
		if (head != null)
		{
			Node current = null;
			boolean status = false;
			do {
				// Start with first node    
				current = this.head;
				// Reset working status
				status = false;
				while (current != null && current.next != null)
				{
					if (current.data > current.next.data)
					{
						// Swap node values
						current.data = current.data + current.next.data;
						current.next.data = current.data - current.next.data;
						current.data = current.data - current.next.data;
						// When node value change    
						status = true;
					}
					// Visit to next node
					current = current.next;
				}
			} while (status);
		}
		else
		{
			System.out.println("Empty Linked list");
		}
	}
	public static void main(String[] args)
	{
		LinkedList task = new LinkedList();
		// Insert element of linked list
		task.insert(15);
		task.insert(5);
		task.insert(42);
		task.insert(9);
		task.insert(50);
		task.insert(7);
		System.out.print(" Before sort : ");
		// Display all node
		task.display();
		task.bubbleSort();
		System.out.print("\n After sort  : ");
		task.display();
	}
}

Output

 Before sort :   7  50  9  42  5  15
 After sort  :   5  7  9  15  42  50




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment