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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SWAP без использования буфера, как это реализуется? 
:(
    Опции темы
Rauko
Дата 16.6.2015, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ну, собственно это и есть вопрос - как в java реализуется обмен содержимым в переменных без использования буферной переменной?
PM MAIL   Вверх
AntonSaburov
Дата 16.6.2015, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



Зависит от того, какие это переменные. Элементарные или объекты ?
PM MAIL WWW ICQ   Вверх
Rauko
Дата 16.6.2015, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



элементарные целочисленные A и B


Код

import java.util.Scanner;

public class Variables_AB_noBuff {

    public static void main(String[] args) {
        //inputting A
        System.out.print("Input variable A: ");
        Scanner in = new Scanner(System.in);
        int A = in.nextInt();
                
        //inputting B
        System.out.print("Input variable B: ");
        int B = in.nextInt();

        System.out.println("Your variables are: A=" + A + ", B=" + B + ". Let's swap 'em!");
                
        //swapping
        
        System.out.println("Now your variables are: A=" + A + ", B=" + B + ".");
        in.close();
    }
}


вот так выглядит весь код без обмена
PM MAIL   Вверх
AntonSaburov
Дата 16.6.2015, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



Обычная математическая задачка - для этого не обязательно знать Java. Хорошо бы начать думать.

Код

public class Swap {

    public static void main(String[] args) {
        int a = 9;
        int b = 15;

        System.out.println(a + ":" + b);
        
        a = a + b;
        b = a - b;
        a = a - b;

        System.out.println(a + ":" + b);
    }
}

PM MAIL WWW ICQ   Вверх
Rauko
Дата 16.6.2015, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ну, мне про такие приемы не рассказывали...

за подсказку спасибо, отсюда еще один вопрос - есть ли где то табличка с такими "стандартными" приемами?

еще такой вопрос - есть ли другие способы реализации безбуферного обмена?
PM MAIL   Вверх
sgrey
Дата 16.6.2015, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Rauko @ 16.6.2015,  15:20)
ну, мне про такие приемы не рассказывали...

за подсказку спасибо, отсюда еще один вопрос - есть ли где то табличка с такими "стандартными" приемами?

еще такой вопрос - есть ли другие способы реализации безбуферного обмена?

можно делать через XOR

Код

a = a^b;
b = a^b;
a = a^b;

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


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



Генри С. Уоррен "Алгоритмические трюки для программистов"
PM MAIL WWW ICQ   Вверх
Rauko
Дата 16.6.2015, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



спасибо, изучу
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.0519 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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