Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- class Node {
- int element;
- Node pred, succ;
- Node(int element) {
- this.element = element;
- this.pred = this.succ = null;
- }
- }
- public class BubbleSortDLL {
- Node begin;
- BubbleSortDLL() {
- this.begin = null;
- }
- void insert(int elem) {
- Node newNode = new Node(elem);
- if (begin == null) {
- begin = newNode;
- } else {
- Node temp = begin;
- while (temp.succ != null) {
- temp = temp.succ;
- }
- temp.succ = newNode;
- newNode.pred = temp;
- }
- }
- void bubbleSort() {
- if (begin == null || begin.succ == null) {
- return;
- }
- boolean swapped;
- Node last = null;
- do {
- swapped = false;
- Node current = begin;
- while (current.succ != last) {
- if (current.element > current.succ.element) {
- swap(current, current.succ);
- swapped = true;
- }
- current = current.succ;
- }
- last = current;
- } while (swapped);
- }
- void swap(Node node1, Node node2) {
- int temp = node1.element;
- node1.element = node2.element;
- node2.element = temp;
- }
- void printDLL() {
- Node temp = begin;
- while (temp != null) {
- System.out.print(temp.element + " ");
- temp = temp.succ;
- }
- System.out.println();
- }
- public static void main(String[] args) throws IOException {
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- int n = Integer.parseInt(br.readLine());
- String[] nodes = br.readLine().split(" ");
- BubbleSortDLL list = new BubbleSortDLL();
- for (String node : nodes) {
- list.insert(Integer.parseInt(node));
- }
- list.bubbleSort();
- list.printDLL();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement