Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
1

Сортировка пузырьком

26.05.2017, 18:05. Показов 3791. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот код сортировки пузырьком:
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$a=0..100
for($j=100; $j -ge 0; $j--)
{
    for($i=0; $i -le $j-1; $i++)
    {
        if ($a[$i] -lt $a[$i+1])
        {
            $a[$i] = $a[$i] + $a[$i+1]
            $a[$i+1] = $a[$i] - $a[$i+1]
            $a[$i] = $a[$i] - $a[$i+1]
        }
    }
}
$a
Почему не работает?
Все исправил.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2017, 18:05
Ответы с готовыми решениями:

Блок схема.Сортировка «Пузырьком», Сортировка методом «Последовательных перестановок», Сортировка «Вставками»
Помогите, нужны блок схемы Сортировка «Вставками» Program Vstavka; uses dos; Type mass=array ...

Сортировка пузырьком
Всем доброго времени суток. Помогите пожалуйста написать программу сортировки пузырьком в...

Сортировка пузырьком
вот написала программу но не работает :( #include <iostream> #include <conio.h> #include <ctime>...

Сортировка пузырьком
Как сделать пошаговый вывод сортировки? #include <iostream> #include <string> #include <ctime>...

8
5981 / 1990 / 323
Регистрация: 10.12.2013
Сообщений: 6,855
26.05.2017, 22:01 2
Лучший ответ Сообщение было отмечено Соколиный глаз как решение

Решение

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function bubblesort ($a) {
    $l = $a.Length
    $hasChanged = $true
    while ($hasChanged) {
        $hasChanged = $false
        $l--
        for ($i = 0; $i -lt $l; $i++) {
            if ($a[$i] -gt $a[$i+1]) {
                $a[$i], $a[$i+1] = $a[$i+1], $a[$i]
                $hasChanged = $true
            }
        }
    }
}
1
0 / 0 / 1
Регистрация: 17.05.2015
Сообщений: 30
24.12.2018, 12:46 3
Соколиный глаз, Можете сбросить решение вашего кода? Пытался сам исправить, но не получилось. Надо чтобы и отрицательные числа сортировал, но при попытке их ввода выдается ошибка
0
1885 / 1107 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
24.12.2018, 13:55 4
Цитата Сообщение от Tarpet Посмотреть сообщение
Надо чтобы и отрицательные числа сортировал
bubblesort из ответа #2

PowerShell
1
2
3
$a = -2,3,-1,5,10,-7
bubblesort $a
$a
Код
-7
-2
-1
3
5
10
Цитата Сообщение от Tarpet Посмотреть сообщение
при попытке их ввода выдается ошибка
Покажите текст ошибки.
1
0 / 0 / 1
Регистрация: 17.05.2015
Сообщений: 30
24.12.2018, 16:59 5
KDE777, Вот моя ошибка, при выполнении первого кода с добавлением числа с минусом в массив, при этом сортировка выполняется:
Миниатюры
Сортировка пузырьком  
0
Любознательный
5649 / 1667 / 311
Регистрация: 10.03.2016
Сообщений: 3,774
24.12.2018, 18:02 6
Цитата Сообщение от Tarpet Посмотреть сообщение
при выполнении первого кода
Так чем не устраивает код из сообщения #2?
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
24.12.2018, 18:04  [ТС] 7
Удивительно, что тема активизировалась спустя столько времени.
0
1885 / 1107 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
24.12.2018, 18:07 8
Цитата Сообщение от Tarpet Посмотреть сообщение
Вот моя ошибка, при выполнении первого кода
Так там и спрашивают - "Почему не работает?"

Используйте рабочее решение, показанное volodin661

Или вот это:

https://gallery.technet.micros... l-c25964c2
0
1885 / 1107 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
25.12.2018, 11:30 9
Цитата Сообщение от Tarpet Посмотреть сообщение
Вот моя ошибка, при выполнении первого кода с добавлением числа с минусом в массив
Если интересно, то взяв код из первого сообщения:

1. Вы поменяли количество элементов в исходном массиве $a, но не поняли, что тогда в строке #2 нужно переменной $j присвоить число равное количеству элементов в массиве $a

2. Ошибка о выходе за границу массива, при наличие отрицательных чисел, происходит из-за -le вместо -lt в строке #4.

Итого:

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
cls; $a=-2..2
for($j=$a.Length; $j -ge 0; $j--)
{
    for($i=0; $i -lt $j-1; $i++)
    {
        if ($a[$i] -lt $a[$i+1])
        {
            $a[$i] = $a[$i] + $a[$i+1]
            $a[$i+1] = $a[$i] - $a[$i+1]
            $a[$i] = $a[$i] - $a[$i+1]
        }
    }
}
$a -join ', '
Код
2, 1, 0, -1, -2
0
25.12.2018, 11:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2018, 11:30
Помогаю со студенческими работами здесь

Сортировка пузырьком
#include "stdafx.h" #include <iostream> using namespace std; int main() { const int n =...

Сортировка пузырьком
#include <stdio.h> #include <iostream> #include <conio.h> #define M 10 void main() { int...

Сортировка пузырьком
Нужно реализовать сортировку пузырьком для последовательности байт. Но почему то он сравнивая числа...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru