Форум программистов, компьютерный форум, киберфорум
mutagen
Войти
Регистрация
Восстановить пароль
все вопросы по Java которые задают более 3х раз на форуме
Оценить эту запись

Циклический сдвиг

Запись от mutagen размещена 16.11.2013 в 13:55
Обновил(-а) mutagen 16.11.2013 в 13:57

Любителям шифров начального уровня посвящается )

Максимально шустрый средствами java циклический сдвиг на женериках

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
import java.util.Arrays;
 
/**
 * @author mutagen
 */
public class CyclicShift<E> {
 
    public E[] shiftLeft(E[] arr) {
        E tmp = arr[arr.length - 1];
        System.arraycopy(arr, 0, arr, 1, arr.length - 1);
        arr[0] = tmp;
        return arr;
    }
 
    public E[] shiftRight(E[] arr) {
        E tmp = arr[0];
        System.arraycopy(arr, 1, arr, 0, arr.length - 1);
        arr[arr.length - 1] = tmp;
        return arr;
    }
 
    public E[] shiftLeft(E[] arr, int count) {
        for (int i = 0; i < count; i++) {
            shiftLeft(arr);
        }
        return arr;
    }
 
    public E[] shiftRight(E[] arr, int count) {
        for (int i = 0; i < count; i++) {
            shiftRight(arr);
        }
        return arr;
    }
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        CyclicShift<Integer> shifter = new CyclicShift<>();
        Integer[] arr = {1, 2, 3, 4, 5, 6};
        System.out.println(Arrays.toString(shifter.shiftLeft(arr)));
        System.out.println(Arrays.toString(shifter.shiftRight(arr, 2)));
        System.out.println(Arrays.toString(shifter.shiftLeft(arr, 2)));
        System.out.println(Arrays.toString(shifter.shiftRight(arr)));
    }
 
}


PS: можно конечно заморочиться и в методах shiftRight(E[] arr, int count) и shiftLeft(E[] arr, int count) тоже сделать через систем-арейкопи, и это будет ещё быстрее, но это уже домашка
Размещено в Без категории
Показов 4516 Комментарии 2
Всего комментариев 2
Комментарии
  1. Старый комментарий
    а нафига нам объект сдвига?
    Запись от Jupiter размещена 16.11.2013 в 14:28 Jupiter вне форума
  2. Старый комментарий
    Аватар для mutagen
    Цитата:
    Сообщение от Jupiter Просмотреть комментарий
    а нафига нам объект сдвига?
    чтобы можно было его использовать как консьюмер, если вдруг делать шифрилку с плагинами, доимплементить в нём интерфейсик и вуаля )

    ps: да и последнее время надоели мне статики )
    Запись от mutagen размещена 16.11.2013 в 14:54 mutagen вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru