Advertisement
cekozz

zadaca3labs5

Dec 3rd, 2023
894
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.12 KB | None | 1 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. class Node {
  6.     int element;
  7.     Node pred, succ;
  8.  
  9.     Node(int element) {
  10.         this.element = element;
  11.         this.pred = this.succ = null;
  12.     }
  13. }
  14.  
  15. public class BubbleSortDLL {
  16.  
  17.     Node begin;
  18.  
  19.     BubbleSortDLL() {
  20.         this.begin = null;
  21.     }
  22.  
  23.  
  24.     void insert(int elem) {
  25.         Node newNode = new Node(elem);
  26.         if (begin == null) {
  27.             begin = newNode;
  28.         } else {
  29.             Node temp = begin;
  30.             while (temp.succ != null) {
  31.                 temp = temp.succ;
  32.             }
  33.             temp.succ = newNode;
  34.             newNode.pred = temp;
  35.         }
  36.     }
  37.  
  38.     void bubbleSort() {
  39.         if (begin == null || begin.succ == null) {
  40.  
  41.             return;
  42.         }
  43.  
  44.         boolean swapped;
  45.         Node last = null;
  46.  
  47.         do {
  48.             swapped = false;
  49.             Node current = begin;
  50.  
  51.             while (current.succ != last) {
  52.                 if (current.element > current.succ.element) {
  53.                     swap(current, current.succ);
  54.                     swapped = true;
  55.                 }
  56.                 current = current.succ;
  57.             }
  58.  
  59.             last = current;
  60.         } while (swapped);
  61.     }
  62.  
  63.  
  64.     void swap(Node node1, Node node2) {
  65.         int temp = node1.element;
  66.         node1.element = node2.element;
  67.         node2.element = temp;
  68.     }
  69.  
  70.    
  71.     void printDLL() {
  72.         Node temp = begin;
  73.         while (temp != null) {
  74.             System.out.print(temp.element + " ");
  75.             temp = temp.succ;
  76.         }
  77.         System.out.println();
  78.     }
  79.  
  80.     public static void main(String[] args) throws IOException {
  81.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  82.  
  83.         int n = Integer.parseInt(br.readLine());
  84.         String[] nodes = br.readLine().split(" ");
  85.  
  86.         BubbleSortDLL list = new BubbleSortDLL();
  87.         for (String node : nodes) {
  88.             list.insert(Integer.parseInt(node));
  89.         }
  90.  
  91.         list.bubbleSort();
  92.         list.printDLL();
  93.     }
  94. }
  95.  
Tags: Labs
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement