Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> убывание сумм элементов массива 
:(
    Опции темы
ArniLand
Дата 14.10.2010, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 17.8.2008

Репутация: нет
Всего: нет



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

symma chisel ravna: 22
symma chisel ravna: 23
symma chisel ravna: 19
symma chisel ravna: 20
symma chisel ravna: 15
symma chisel ravna: 19
symma chisel ravna: 14
symma chisel ravna: 15
symma chisel ravna: 9
symma chisel ravna: 13
symma chisel ravna: 9
symma chisel ravna: 20
symma chisel ravna: 8
symma chisel ravna: 9
symma chisel ravna: 1
symma chisel ravna: 5
symma chisel ravna: 1
symma chisel ravna: 12
symma chisel ravna: 1
symma chisel ravna: 20
do->1        posle->8
do->3        posle->6
do->5        posle->5
do->6        posle->3
do->8        posle->1


Код программы:


Код

package laba13;
import java.io.*;
import java.lang.*;
public class Row {
    public static void InsertionSort(int array[])
{
    int i;

    for (i = 1; i < array.length; i++)
    {
        int j;
        int buf = array[i];
        for (j = i - 1; j >= 0; j--)
        {
            if (symm(array, i) > symm(array, j))
                break;
            array[j + 1] = array[j];

        }

        array[j + 1] = buf;


    }
}
    
    public static int symm(int mass[], int i) {
    int sum = 0;
    for (int a = i; a < mass.length; a++) {
        sum = sum + mass[a];
    }
    System.out.println("symma chisel ravna: " + sum);
    return sum;
    }
    
    public static void main(String arg[])
    {
        char[] mass={'1','3','5','6','8'};
        int[] copymass=new int[mass.length];


for(int a=0;a<mass.length;a++)

{
    copymass[a]=Character.digit(mass[a], 10);
}
InsertionSort(copymass);

for(int b=0;b<copymass.length;b++)
{
    System.out.println("do->"+mass[b]+"\tposle->"+copymass[b]);
}
     }

}



Это сообщение отредактировал(а) ArniLand - 14.10.2010, 19:35
PM MAIL   Вверх
priam220
Дата 20.10.2010, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: 7
Всего: 8



нашел твою тему в javatalks, понял о чем ты. Наверное только не сумм элементов массива, а сумм цифр элментов массива.
Там парень не доработал свой алгоритм, вот алгоритм полностью:
Код

public class A {

    public static void main(String[] arg) {
        String[] mass = { "1324", "659324724", "7522824", "4725", "464379" };
        System.out.println("Dlina massiva= " + mass.length);// Для отладки
        Pattern shablon = Pattern.compile("[0-9]");// что ищем?
        int[] mas_indx = new int[mass.length];
        for (int a = 0; a < mass.length; a++) {
            int summa_indeksa = 0;
            Matcher mat = shablon.matcher(mass[a]);// где ищем?
            while (mat.find()) {
                summa_indeksa += Integer.parseInt(mat.group());
            }
            System.out.println("Summa indexa [" + a + "]=" + summa_indeksa);
            mas_indx[a] = summa_indeksa;
        }

        for (int i = 1; i < mass.length; i++) {
            for (int j = i - 1; j >= 0; j--) {
                if (mas_indx[j + 1] < mas_indx[j])
                    break;
                int bufi = mas_indx[j + 1];
                mas_indx[j + 1] = mas_indx[j];
                mas_indx[j] = bufi;
                String bufs = mass[j + 1];
                mass[j + 1] = mass[j];
                mass[j] = bufs;
            }
        }
        for (int a = 0; a < mass.length; a++) {
            System.out.println("a[" + a + "] " + mass[a] + ": " + mas_indx[a]);
        }
    }
}


Вывод:

Dlina massiva= 5
Summa indexa [0]=10
Summa indexa [1]=42
Summa indexa [2]=30
Summa indexa [3]=18
Summa indexa [4]=33
a[0] 659324724: 42
a[1] 464379: 33
a[2] 7522824: 30
a[3] 4725: 18
a[4] 1324: 10

Это сообщение отредактировал(а) priam220 - 20.10.2010, 23:51
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0889 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.