Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Nickolas97
1 / 1 / 0
Регистрация: 20.09.2015
Сообщений: 63
1

Сортировка пузырьком для односвязного списка

17.10.2015, 16:07. Просмотров 2203. Ответов 3
Метки нет (Все метки)

Помогите, пожалуйста, с реализацией сортировки пузырьком для односвязного списка. Желательно создать список и метод сортировки для него. Заранее спасибо!
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2015, 16:07
Ответы с готовыми решениями:

Сортировка пузырьком
Подскажите, пожалуйста, что не так с if? Почему Eclipse ругается? public class ArraySort { ...

Сортировка пузырьком
Здравствуйте. Подскажите почему мой код не сортирует .( И подскажите какой способ сортировка...

Сортировка пузырьком
Не могу найти ошибку. public class SortArray { public static int sort(int array1) { ...

Поменять местами элементы односвязного списка
Есть class ListElement<T> { ListElement next; T data; } и public class...

программа на проверку ацикличности односвязного списка
Помогите пожалуйста решить эти задачи на jave очень очень срочно.....вопрос жизни и смерти??? я вам...

3
ne2win
204 / 204 / 71
Регистрация: 25.02.2014
Сообщений: 569
17.10.2015, 22:14 2
Nickolas97, что уже сделано?
0
Nickolas97
1 / 1 / 0
Регистрация: 20.09.2015
Сообщений: 63
18.10.2015, 13:01  [ТС] 3
Есть неправильный и недоделанный код на джаве и готовый на c#. Только вот не могу переделать его в джаву по той причине, что visual studio не устанавливается.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package algoritm;
 
class ListElement {
    ListElement next;    // указатель на следующий элемент
    int data;            // данные
}
 
public class List {
    private ListElement head;       // указатель на первый элемент
    private ListElement tail;       // указатель последний элемент
 
    void addFront(int data)           //добавить спереди
    {
        ListElement a = new ListElement();  //создаём новый элемент
        a.data = data;              //инициализируем данные. 
                                    // указатель на следующий элемент автоматически инициализируется как null
        if(head == null)            //если список пуст
        {                           //то указываем ссылки начала и конца на новый элемент
            head = a;               //т.е. список теперь состоит из одного элемента
            tail = a;
        }
        else {
            a.next = head;          //иначе новый элемент теперь ссылается на "бывший" первый
            head = a;               //а указатель на первый элемент теперь ссылается на новый элемент 
        }
}
    public void bubbleSort() {
        Object a = null;
        Object b = null;
        Object c = null;
        Object e = null;
        Object tmp = null;
 
        while (e != head.next) {
            c = a = head;
            b = a.next;
            while (a != e) {
                if (a.dData > b.dData) {
                    if (a == head) {
                        tmp = b.next;
                        b.next = a;
                        a.next = tmp;
                        head = b;
                        c = b;
                    } else {
                        tmp = b.next;
                        b.next = a;
                        a.next = tmp;
                        c.next = b;
                        c = b;
                    }
                } else {
                    c = a;
                    a = a.next;
                }
                b = a.next;
                if (b == e) {
                    e = a;
                }
            }
        }
    }
}
0
ne2win
204 / 204 / 71
Регистрация: 25.02.2014
Сообщений: 569
18.10.2015, 17:02 4
Лучший ответ Сообщение было отмечено Nickolas97 как решение

Решение

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
public class List {
 
    private class ListElement {
 
        ListElement next;    // указатель на следующий элемент
        int data;            // данные
    }
    private ListElement head;       // указатель на первый элемент
    private ListElement tail;       // указатель последний элемент
 
    void addFront(int data) //добавить спереди
    {
        ListElement a = new ListElement();  //создаём новый элемент
        a.data = data;              //инициализируем данные. 
        // указатель на следующий элемент автоматически инициализируется как null
        if (head == null) //если список пуст
        {
            head = a;
            tail = a;
        } else {
 
            a.next = head;
            head = a;
 
        }
    }
 
    private void swap(ListElement l1, ListElement l2) {
        int n = l1.data;
        l1.data = l2.data;
        l2.data = n;
    }
 
    public void bubbleSort() {
        boolean flag = true;
 
        while (flag) {
            ListElement le = head;
            flag = false;
            while (le != tail) {
                if (le.data > le.next.data) {
                    swap(le, le.next);
                    flag = true;
                }
                le = le.next;
            }
        }
 
    }
 
    @Override
    public String toString() {
        ListElement le = head;
        StringBuilder sb = new StringBuilder("[" + le.data + ", ");
        while ((le = le.next) != null) {
            sb.append(le.data + ", ");
        }
        sb.append("]");
        return sb.toString();
 
    }
 
    public static void main(String[] args) {
        System.out.println("Start");
        List list = new List();
        list.addFront(1);
        list.addFront(1289);
        list.addFront(-12);
        list.addFront(54);
        list.addFront(213);
        list.addFront(-213);
        list.addFront(11);
        list.addFront(22);
        list.addFront(0);
        list.addFront(0);
        list.addFront(1);
        list.addFront(12);
        
        System.out.println(list);
        list.bubbleSort();
        System.out.println(list);
 
    }
}
2
18.10.2015, 17:02
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2015, 17:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сортировка пузырьком двухмерного массива
После заполнения случайными числами двухмерного массива нужно отсортировать его. Массив заполнила,...

Сортировка элементов пузырьком по убыванию
Всем привет. Задание было сделать сортировку элементов пузырьком по убыванию. На выводе: . Как...

Сортировка вставками или пузырьком?
Здравствуйте! подскажите, пожалуйста, правильно ли реализован алгоритм сортировки вставками, или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.