Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Java] Объединение массивов 
:(
    Опции темы
dawystrik
Дата 23.3.2010, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



У меня дана лабораторная работа:
Заданы два массива x и y вещественных чисел размерностью m и n соответственно. Элементы каждого из этих массивов упорядочены по неубыванию. Объединить элементы этих двух массивов в один массив z так, чтобы они снова оказались упорядоченными по неубыванию.


Код

public class MyArr {

public static void main (String[] args) {

double x[] = {2.2, 1.1, 5.5, 3.3, 4.4};
double y[] = {9.9, 7.7, 6.6, 8.8};

double k,l;

boolean flag = true;
boolean flag2 = true;

System.out.println ("Sort array x[]:");


while (flag){
   flag = false;
   for (int i = 0; i<x.length-1; i++){
        
        if (x[i] > x[i+1]) {

            k = x[i];
            x[i] = x[i+1];
            x[i+1] = k;
            flag = true;
        } 
   }
}
for (int i = 0; i < x.length; i++){
   System.out.println(x[i] + " ");
}
System.out.println ("Sort array y[]:");

while (flag2){
   flag2 = false;
   for (int i = 0; i< y.length-1; i++){
        
        if (y[i] > y[i+1]) {

            l = y[i];
            y[i] = y[i+1];
            y[i+1] = l;
            flag2 = true;
        } 
   }
}
for (int i = 0; i < y.length; i++){
   System.out.println(y[i] + " ");
}
}
}


Я создала 2 массива,отсортировала их по возрастанию,теперь мне надо объединить эти 2 массива в массиве z и отсортировать по возрастанию. Как их объединить? Подскажите, плиз. Я читала что делать это надо при помощи копирования или клонирования,но не очень разобралась с этим материалом и не очень его поняла.

Заранее благодарю.

Это сообщение отредактировал(а) dawystrik - 23.3.2010, 14:43
PM MAIL   Вверх
MaxPayneC
Дата 23.3.2010, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

        int[] x = new int[]{1, 2};
        int[] y = new int[]{4, 2};
        List<Integer> list = new LinkedList<Integer>();
        for (int i = 0; i < x.length; ++i)
        {
            list.add(x[i]);
        }
        for (int i = 0; i < y.length; ++i)
        {
            list.add(y[i]);
        }
        Collections.sort(list);
        Integer[] values = (Integer[]) list.toArray(new Integer[list.size()]);

PM   Вверх
LSD
Дата 23.3.2010, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Код

import java.util.Arrays;

public class MyArr
{
  public static void main(String[] args)
  {
    double[] x = {2.2, 1.1, 5.5, 3.3, 4.4, 10.1};
    System.out.println("Sort array x[]:");
    sort(x);
    System.out.println(Arrays.toString(x));

    double[] y = {9.9, 7.7, 6.6, 8.8};
    System.out.println("Sort array y[]:");
    sort(y);
    System.out.println(Arrays.toString(y));


    System.out.println("Merge x[] and y[]:");
    double[] merged = merge(x, y);
    System.out.println(Arrays.toString(merged));
  }

  public static void sort(double[] array)
  {
    boolean flag = true;
    while(flag)
    {
      flag = false;
      for(int i = 0; i < array.length - 1; i++)
      {

        if(array[i] > array[i + 1])
        {
          double k = array[i];
          array[i] = array[i + 1];
          array[i + 1] = k;
          flag = true;
        }
      }
    }
  }

  public static double[] merge(double[] x, double[] y)
  {
    final int size = x.length + y.length;
    double[] res = new double[size];
    int i = 0;
    int ix = 0;
    int iy = 0;
    while(i < size && ix < x.length && iy < y.length)
    {
      if(x[ix] < y[iy])
      {
        res[i] = x[ix];
        ix++;
      }
      else
      {
        res[i] = y[iy];
        iy++;
      }
      i++;
    }

    while(ix < x.length)
    {
      res[i] = x[ix];
      ix++;
      i++;
    }


    while(iy < y.length)
    {
      res[i] = y[iy];
      iy++;
      i++;
    }

    return res;
  }
}



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ivanovpv
Дата 23.3.2010, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

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



Ндааа brute-force я гляжу нынче все еще в моде...

Код

public class MyArr {
public static void main (String[] args) {
double x[] = {2.2, 1.1, 5.5, 3.3, 4.4};
double y[] = {9.9, 7.7, 6.6, 8.8};
double z[] = new double[x.length+y.length];

System.arraycopy(x, 0, z, 0, x.length); //копируем массив x в начало z
System.arraycopy(y, 0, z, x.length, y.length); //копируем массив y в конец z

//далее сортируем полученный массив z - это уже просто...

//... сами допишете




--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
dawystrik
Дата 23.3.2010, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



спасибки,всё вышло,я немного подкорректировала,и вот вышло:
Код

public class MyArr {

public static void main (String[] args) {

double x[] = {1.8, 2.4, 6.5, 3.9, 6.1};
double y[] = {1.3, 5.4, 2.5, 6.4, 10.5};
double z[] = new double[x.length+y.length];

double k,l,m;

boolean flag = true;
boolean flag2 = true;
boolean flag3 = true;

System.out.println ("Array x[]:");
for (int i = 0; i < x.length; i++){
   System.out.println(x[i] + " ");
}

System.out.println ("Sort array x[]:");

while (flag){
   flag = false;
   for (int i = 0; i<x.length-1; i++){
        
        if (x[i] > x[i+1]) {

            k = x[i];
            x[i] = x[i+1];
            x[i+1] = k;
            flag = true;
        } 
   }
}
for (int i = 0; i < x.length; i++){
   System.out.println(x[i] + " ");
}

System.out.println ("Array y[]:");
for (int i = 0; i < y.length; i++){
   System.out.println(y[i] + " ");
}

System.out.println ("Sort array y[]:");

while (flag2){
   flag2 = false;
   for (int i = 0; i< y.length-1; i++){
        
        if (y[i] > y[i+1]) {

            l = y[i];
            y[i] = y[i+1];
            y[i+1] = l;
            flag2 = true;
        } 
   }
}
for (int i = 0; i < y.length; i++){
   System.out.println(y[i] + " ");
}
System.arraycopy(x, 0, z, 0, x.length); 
System.arraycopy(y, 0, z, x.length, y.length); 
System.out.println ("Array z[]:");
for (int i = 0; i < z.length; i++){
System.out.println(z[i]);
}
System.out.println ("Sort array z[]:");

while (flag3){
   flag3 = false;
   for (int i = 0; i< z.length-1; i++){
        
        if (z[i] > z[i+1]) {

            m = z[i];
            z[i] = z[i+1];
            z[i+1] = m;
            flag3 = true;
        } 
   }
}
for (int i = 0; i < z.length; i++){
   System.out.println(z[i] + " ");
}
}
}




Это сообщение отредактировал(а) dawystrik - 23.3.2010, 18:19
PM MAIL   Вверх
dawystrik
Дата 23.3.2010, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ещё у меня такой вопросик,как использовать утилиту javadoc???
Просто у меня ещё в задании стоит:
Получить документацию на разработанное приложение при помощи утилиты javadoc.exe
PM MAIL   Вверх
LSD
Дата 23.3.2010, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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





--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
dawystrik
Дата 23.3.2010, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а можно ссылочку на русском?
PM MAIL   Вверх
jk1
Дата 23.3.2010, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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





--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
dawystrik
Дата 24.3.2010, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а ведь правильно,исходя из моего кода,у меня один класс и один метод,да?
PM MAIL   Вверх
dawystrik
Дата 24.3.2010, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а как можно в моем коде сделать несколько методов??я просто в них не очень разбираюсь

Это сообщение отредактировал(а) dawystrik - 24.3.2010, 12:14
PM MAIL   Вверх
LSD
Дата 24.3.2010, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
dawystrik
Дата 24.3.2010, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а этот тут при чем?я всего лишь вопрос задала,а Вы уже куда-то тему переносите,если Вам тяжело ответить,то так и скажите,и это не домашнее задание и не курсовая,так что зачем переносить тему в тот раздел, которому она не соответствует
PM MAIL   Вверх
LSD
Дата 24.3.2010, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(dawystrik @  24.3.2010,  13:02 Найти цитируемый пост)
Вам тяжело ответить,то так и скажите,и это не домашнее задание и не курсовая,так что зачем переносить тему в тот раздел, которому она не соответствует 

Раздел как раз соответствует.
Цитата(dawystrik @  23.3.2010,  14:42 Найти цитируемый пост)
У меня дана лабораторная работа:

Этот раздел как раз и предназначен для тем с просьбами все написать за тебя. Например ты спрашиваешь:
Цитата(dawystrik @  24.3.2010,  12:04 Найти цитируемый пост)
а как можно в моем коде сделать несколько методов??

при том что мой пример как раз и содержит несколько методов. Раз ты сама не можешь взять мой код за образец и переделать, то топику самое место в Центре помощи.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
dawystrik
Дата 25.3.2010, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



извините,я вначале вообще не увидела,чтобы вы что-то писали,я уже и так без Вашей помощи всё сделала четко,ясно и лаконично,а Ваш вариант мне не подходит,уж сильно вы там всё перекрутили и очень много расписали,у меня вышло коротко,четко,ясно и лаконично

Добавлено @ 09:23
Цитата(LSD @ 24.3.2010,  17:33)
Цитата(dawystrik @  23.3.2010,  14:42 Найти цитируемый пост)
У меня дана лабораторная работа:

Этот раздел как раз и предназначен для тем с просьбами все написать за тебя. 

Простите,а покажите мне где я написала и попросила написать за меня код???покажите мне такое сообщение:дату и время!

Добавлено @ 09:26
тем более,что код был уже в самом начале написан мною,если Вы не обратили внимания,в самом начале,и если бы я хотела,чтобы кто-то что-то сделал за меня  обратилась бы действительно в другой раздел,дала бы условие лабы и написала бы следующее - Напишите мне пожалуйста код,сделайте за меня!
А я лишь задала простой и элементарный вопрос,если вы не способны и не компетентны на него ответить, тогда мне остается только руками развести.

Добавлено @ 09:30
тем более что код у вас честно говоря уж сильно накрученный и перекрученный,я четко взяла 3 метода каждый с названием массива и там работала с отдельными массивами

Это сообщение отредактировал(а) dawystrik - 25.3.2010, 09:31
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

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


 




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


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

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