Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Что изменить чтоб массив сортировался от большего
СообщениеДобавлено: 20 ноя 2017, 17:35 
Не в сети
Продвинутый
Зарегистрирован:
01 окт 2017, 15:59
Сообщений: 63
Cпасибо сказано: 8
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Что изменить, чтоб массив сортировался от большего к меньшему
/* Java implementation Radix Sort */
package codingeek;
import java.util.Arrays;
import java.util.Scanner;

public class RadixSort {

public static void main(String arg[]){

int a[] = {209,3,48,-91,66,101,-30,795};
//print unsorted array using Arrays.toString()
System.out.print("Unsorted array: ");
System.out.println(Arrays.toString(a));

RadixSort rs= new RadixSort();
rs.radixSort(a);

System.out.print("Sorted array: ");
//print sorted array
System.out.println(Arrays.toString(a));

}

// This function gives maximum value in array[]
public int getMax(int A[])
{
int max = A[0];
for (int i = 1; i < A.length; i++){
if (A[i] > max)
max = A[i];
}
return max;
}

// Main Radix Sort sort function
public void radixSort(int A[])
{
int digitPlace = 1;
int n=A.length;
int result[]=new int[n]; // resulting array
// Find the largest number to know number of digits
int largestNum = getMax(A);


//we run loop until we reach the largest digit place
while(largestNum/digitPlace >0){

int count[]=new int[10];
//Initializing counting array C[] to 0
for (int i=0; i <10; i++)
count[i] = 0;

//Store the count of "keys" or digits in count[]
for (int i = 0; i < n; i++)
count[ (A[i]/digitPlace)%10 ]++;

// Change count[i] so that count[i] now contains actual
// position of this digit in result[]
// Working similar to the counting sort algorithm
for (int i = 1; i < 10; i++)
count[i] += count[i - 1];

// Build the resulting array
for (int i = n - 1; i >= 0; i--)
{
result[count[ (A[i]/digitPlace)%10 ] - 1] = A[i];
count[ (A[i]/digitPlace)%10 ]--;
}

// Now main array A[] contains sorted
// numbers according to current digit place
for (int i = 0; i < n; i++)
A[i] = result[i];

// Move to next digit place
digitPlace *= 10;
}
}

}

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Что изменить чтоб массив сортировался от большего
СообщениеДобавлено: 20 ноя 2017, 17:35 
Не в сети
Продвинутый
Зарегистрирован:
01 окт 2017, 15:59
Сообщений: 63
Cпасибо сказано: 8
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
только положительные элементы

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Что изменить чтоб массив сортировался от большего
СообщениеДобавлено: 22 ноя 2017, 04:13 
Не в сети
Beautiful Mind
Аватара пользователя
Зарегистрирован:
22 июл 2016, 23:44
Сообщений: 1038
Cпасибо сказано: 3
Спасибо получено:
29 раз в 26 сообщениях
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Больше всего в этом алгоритме мне нравится LSD.
Но решение будет завтра...

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Что изменить чтоб массив сортировался от большего
СообщениеДобавлено: 22 ноя 2017, 08:46 
Не в сети
Продвинутый
Зарегистрирован:
01 окт 2017, 15:59
Сообщений: 63
Cпасибо сказано: 8
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
BoxMuller писал(а):
Больше всего в этом алгоритме мне нравится LSD.
Но решение будет завтра...


Поподробней об LSD? и решение уже не нужно

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Что изменить чтоб массив сортировался от большего
СообщениеДобавлено: 23 ноя 2017, 23:51 
Не в сети
Beautiful Mind
Аватара пользователя
Зарегистрирован:
22 июл 2016, 23:44
Сообщений: 1038
Cпасибо сказано: 3
Спасибо получено:
29 раз в 26 сообщениях
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Katrina7
Простите меня, я - подлец.
Я обещал сделать "завтра" а сам нажрался и положил на все с прибором.
А теперь только к понедельнику.
Извините.

А... ну да, уже не нужно.
Last significal digit. (MSB/LSB)
https://en.wikipedia.org/wiki/Lysergic_ ... ethylamide

игра слов - byte/digit

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Цикл
СообщениеДобавлено: 28 ноя 2017, 19:41 
Не в сети
Начинающий
Зарегистрирован:
01 окт 2017, 19:44
Сообщений: 15
Cпасибо сказано: 1
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Объясните, для чего нужен этот цикл.. и как он работает

for (int i = 1; i < 10; i++)
count[i] += count[i - 1];

если можно весь алгоритм пояснить, задание похожее, но там главное понимание алгоритма

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Цикл
СообщениеДобавлено: 28 ноя 2017, 20:37 
Не в сети
Light & Truth
Аватара пользователя
Зарегистрирован:
18 авг 2013, 14:27
Сообщений: 1978
Откуда: Москва
Cпасибо сказано: 384
Спасибо получено:
1069 раз в 855 сообщениях
Очков репутации: 197

Добавить очки репутацииУменьшить очки репутации
Первая строка показывает, что при выполнении шагов (итераций) цикла переменная i будет "пробегать" все значения, начиная с 1 и до 9 включительно с шагом 1.
Собственно сам цикл будет выполнять следующее: на каждом шаге цикла i-ый элемент массива count будет увеличен на величину i-1 -го (предыдущего) элемента того же массива.

Вернуться к началу
 Профиль  
Cпасибо сказано 
За это сообщение пользователю radix "Спасибо" сказали:
Kristopher
 Заголовок сообщения: Re: Что изменить чтоб массив сортировался от большего
СообщениеДобавлено: 28 ноя 2017, 21:42 
Не в сети
Начинающий
Зарегистрирован:
01 окт 2017, 19:44
Сообщений: 15
Cпасибо сказано: 1
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Katrina7 писал(а):
только положительные элементы

Зачем в сортировке этот цикл?
for (int i = 1; i < 10; i++)
count[i] += count[i - 1];
Объясните, как работает этот алгортм.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Что изменить чтоб массив сортировался от большего
СообщениеДобавлено: 29 ноя 2017, 18:16 
Не в сети
Начинающий
Зарегистрирован:
01 окт 2017, 19:44
Сообщений: 15
Cпасибо сказано: 1
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Может вы знаете зачем в сортировке этот цикл?
for (int i = 1; i < 10; i++)
count[i] += count[i - 1];

Просто автор не отвечает, хотел бы разобраться

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Что изменить чтоб массив сортировался от большего
СообщениеДобавлено: 26 дек 2017, 19:18 
Не в сети
Продвинутый
Зарегистрирован:
01 окт 2017, 15:59
Сообщений: 63
Cпасибо сказано: 8
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Kristopher писал(а):
Может вы знаете зачем в сортировке этот цикл?
for (int i = 1; i < 10; i++)
count[i] += count[i - 1];

Просто автор не отвечает, хотел бы разобраться

Там есть комментарии

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему      Страница 1 из 1 [ Сообщений: 10 ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Алгоритм определения меньшего и большего числа в разности

в форуме Алгебра

Supmax

7

211

06 июл 2021, 19:56

Минимальное кол-во ребер чтоб граф стал двудольным?

в форуме Дискретная математика, Теория множеств и Логика

dimavfox

3

303

10 май 2020, 14:41

Нужны примеры решения с цифрами для большего понимания

в форуме Дифференциальные и Интегральные уравнения

Nufus

41

1765

31 мар 2015, 09:31

Чему может быть равно отношение большего из чисел a и b ?

в форуме Задачи со школьных и студенческих олимпиад

goldolov_na

5

253

27 дек 2019, 01:53

Достроить две стороны треугольника, чтоб сумма их длин была

в форуме Геометрия

Avery

1

304

14 ноя 2014, 14:13

Создать массив

в форуме Информатика и Компьютерные науки

Katrina7

5

421

11 ноя 2017, 01:35

Массив TurboBasic

в форуме Информатика и Компьютерные науки

Maxpower55

1

240

21 дек 2017, 19:13

Дан массив. Сформировать новый

в форуме Информатика и Компьютерные науки

mapsaaag

1

346

14 фев 2018, 09:09

Массив простых чисел

в форуме Информатика и Компьютерные науки

pacha

21

3429

30 май 2019, 19:36

Паскаль. Одномерный массив

в форуме Информатика и Компьютерные науки

sfanter

14

912

28 окт 2015, 07:45


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved