Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 30.01.2019
Сообщений: 20

Сортировка чисел 1,2,3,4,5,6,7,8

30.01.2019, 15:15. Показов 3907. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!помогите плиз решить алгоритм!!в задачи задан массив чисел 1,2,3,4,5,6,7,8.нужно вывести в итоге 4,3,2,1,8,7,6,5.
я в принципе сделал вывод использую четыре цикла!а мне говорят что можно упростить написав два цикла и два условия!
вот мой код с четыремя циклами помогите сделать с двумя циклами и два условия!Заранее благодарен!


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
import java.util.Arrays;
 
public class Main {
 
    public static void main(String[] args) {
 
        int[] array = bubbleSortIt();
 
        Arrays.stream(array).forEach(System.out::print);
 
    }
 
    private static int[] bubbleSortIt() {
 
        int[] array = new int[]{1, 2, 3, 4, 5, 6, 7, 8};
        int count = 0;
        boolean isPairMutuallyExchanged = false;
 
        for (int i = 0; i < array.length; i++) {
 
            //     if (array[array.length - i - 1] <)
            isPairMutuallyExchanged = false;
 
            for (int j = 1; j < array.length / 2; j++) {
 
                if (array[j - 1] < array[j]) {
 
                    int tmp = array[j - 1];
                    array[j - 1] = array[j];
                    array[j] = tmp;
                    isPairMutuallyExchanged = true;
 
                }
 
                //     System.out.println(count++);
            }
 
        }
        for (int k = 0; k < array.length; k++) {
 
            for (int c = 5; c < array.length; c++) {
 
 
                if (array[c - 1] < array[c]) {
 
                    int tmp = array[c - 1];
                    array[c - 1] = array[c];
                    array[c] = tmp;
                    //  isPairMutuallyExchanged = true;
 
                }
 
 
            }
 
 
        }
 
 
        return array;
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.01.2019, 15:15
Ответы с готовыми решениями:

Сортировка массива целых чисел A(n) по убыванию(используя метод обменная сортировка)
Помогите написать программу для сортировки массива целых чисел A(n) по убыванию(используя метод обменная сортировка). Или хотя бы без этого...

Двумерный массив рациональных чисел + среднее арифметическое чисел массива + сортировка методом вставки
Ничего не могу понять!Вроде все правильно создавал, но считает неправильно. +Выдает ошибку Так же не могу отсортировать методом вставки...

Сортировка одномерного массива методом «пузырька», выделение массивов из четных и нечетных чисел. Вычисление суммы нечетных чисел
Program Sortirovka; Uses Crt; Var a:array of integer; i,j,k,n,Sum : integer; BEGIN Repeat Clrscr; Write('Vvedite...

9
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
30.01.2019, 15:35
Лучший ответ Сообщение было отмечено H1ndo как решение

Решение

Цитата Сообщение от H1ndo Посмотреть сообщение
я в принципе сделал вывод использую четыре цикла!а мне говорят что можно упростить написав два цикла и два условия!
Можно еще упростить, написав 1 цикл и 1 условие.
Java
1
2
3
4
5
6
7
8
9
10
11
public class MyClass {
    public static void main(String args[]) {
        int[] a = {1, 2, 3, 4, 5, 6, 7, 8};
        int j;
        for(int i = a.length-1; i>=0; i--) {
            j = i;
            j += i>=a.length/2? -4 : 4;
            System.out.println("a["+i+"] = "+a[j]);
        }
    }
}
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
a[7] = 4
a[6] = 3
a[5] = 2
a[4] = 1
a[3] = 8
a[2] = 7
a[1] = 6
a[0] = 5
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
30.01.2019, 15:40
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
public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5, 6, 7, 8};
        System.out.println(Arrays.toString(sort(array)));
    }
 
    private static int[] sort(int[] array) {
        int[] first = Arrays.copyOfRange(array, 0, array.length / 2);
        int[] second = Arrays.copyOfRange(array, array.length / 2, array.length);
        int[] result = new int[array.length];
        fillArray(result, reversedSort(first), 0);
        fillArray(result, reversedSort(second), first.length);
        return result;
    }
 
    private static void fillArray(int[] initialArray, int[] newArray, int fromIndex) {
        for (int value : newArray) {
            initialArray[fromIndex] = value;
            fromIndex++;
        }
    }
 
    private static int[] reversedSort(int[] array) {
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length - 1; j++) {
                if (array[j] < array[j + 1]) {
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
        return array;
    }
0
0 / 0 / 0
Регистрация: 30.01.2019
Сообщений: 20
30.01.2019, 15:41  [ТС]
Спасибо Виктор!А можешь еще написать с двумя циклами и условием на основе моего кода Бро???Прост то что ты написал оч трудно в понимании для меня так как я еще не таком уровне как ты)
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
30.01.2019, 15:42
Цитата Сообщение от H1ndo Посмотреть сообщение
в задачи задан массив чисел 1,2,3,4,5,6,7,8.нужно вывести в итоге 4,3,2,1,8,7,6,5.
На будущее желательно приводить текст задачи полностью, иначе получите ответ типа
Java
1
2
3
4
5
6
public class MyClass {
    public static void main(String args[]) {
        int[] a = {1, 2, 3, 4, 5, 6, 7, 8};
        System.out.println("4 3 2 1 8 7 6 5");
    }
}

Не по теме:

Ну и код обрамлять соответствующими тегами, хотя как для новичка ничего страшного

0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
30.01.2019, 15:42
H1ndo,

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        int[] massiv = {1,2,3,4,5,6,7,8};       
        boolean toSort = true;
        
        while (toSort) {
            toSort = false;
            
            for (int i = 0; i < massiv.length - 1; i++) {
                if (massiv[i] < massiv[i + 1]) {
                    int tmp = massiv[i];
                    massiv[i] = massiv[i + 1];
                    massiv[i + 1] = tmp;
                    
                    toSort = true;
                }
            }
        }
Продолжите сами.
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
30.01.2019, 15:51
Цитата Сообщение от H1ndo Посмотреть сообщение
Спасибо Виктор!А можешь еще написать с двумя циклами и условием на основе моего кода Бро???Прост то что ты написал оч трудно в понимании для меня так как я еще не таком уровне как ты)
У меня код очень простой, как .. назнаю что, единственное что там может быть чуть-чуть посложнее это тернарник.
А вот код Welemir1 действительно посложнее будет.
А вот дальше я не понял, зачем 2 цикла? зачем лишнее условие? Вот у вас действительно сложно-читаемый код, я его даже весь не просматривал и не вникал.
Зачем усложнять задачу?
0
0 / 0 / 0
Регистрация: 30.01.2019
Сообщений: 20
30.01.2019, 16:01  [ТС]
все равно Спасибо!прост новичок пойми поэтому туплю)))

Добавлено через 1 минуту
THANKS BRO!!!!!
0
60 / 41 / 20
Регистрация: 30.01.2019
Сообщений: 133
04.02.2019, 00:26
Java
1
2
3
4
5
6
7
8
9
10
11
12
public class Test {
 
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8};
        for (int i = numbers.length / 2 - 1; i >= 0; i--) {
            System.out.println(numbers[i]);
        }
        for (int i = numbers.length-1;i>numbers.length/2-1;i--){
            System.out.println(numbers[i]);
        }
    }
}
0
 Аватар для Aviz__
2749 / 2057 / 508
Регистрация: 17.02.2014
Сообщений: 9,478
04.02.2019, 09:56
H1ndo, гля, как еще можно:
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
import java.util.Arrays;
 
public class Helper {
 
    private static int[] getTransformArray(int[] oldArr) {
        int lLeftReaderIndex = oldArr.length/2 - 1;
        int wLeftWriterIndex = 0;
        int rRightReaderIndex;
        if (oldArr.length % 2 == 0)
            rRightReaderIndex = oldArr.length/2;
        else rRightReaderIndex = oldArr.length/2 + 1;
        int wRightWriterIndex = oldArr.length - 1;
        int [] retArr = oldArr.clone();
        for (int i = 0; i < oldArr.length/2; i++) {
            retArr[wLeftWriterIndex++] = oldArr[lLeftReaderIndex--];
            retArr[wRightWriterIndex--] = oldArr[rRightReaderIndex++];
        }
        return retArr;
    }
 
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8};
        System.out.println(Arrays.toString(numbers));
        System.out.println(Arrays.toString(getTransformArray(numbers)));
        int[] numberss = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        System.out.println(Arrays.toString(numberss));
        System.out.println(Arrays.toString(getTransformArray(numberss)));
    }
}
Bash
1
2
3
4
[1, 2, 3, 4, 5, 6, 7, 8]
[4, 3, 2, 1, 8, 7, 6, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[4, 3, 2, 1, 5, 9, 8, 7, 6]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2019, 09:56
Помогаю со студенческими работами здесь

Сортировка выбором, сортировка вставкой, сортировка заменой, сортировка обменом ("пузырьковая" сортировка)
Создать класс, содержащий массив и реализующий алгоритмы сортировки и бинарного поиска в этом массиве. Класс описать с помощью...

Сортировка чисел
Разработать программу на языке Ассемблера Intel x86 для ОС MS-DOS. Модель памяти – не регламентируется. Все числа – однозначные (1 символ в...

Сортировка чисел
Это программа делает следующие. В консоле вводим числа и буквы и она выводит только числа. Мне требуется отсортировать цифры, которые...

Сортировка чисел
В форме панелиPanel1 имеются 4 экранные кнопки с числом 0 на поверхности и отдельная кнопка &quot;сортировка&quot; в не панели.Далее...

Сортировка чисел
Необходимо: из столбца, где записано 10 чисел. Получить упорядоченную по возрастанию последовательность этих чисел. (используйте функции...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru