Форум программистов CodeGuru
13 Декабрь 2017, 07:37:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Сортировка  (Прочитано 10879 раз)
0 Пользователей и 1 Гость смотрят эту тему.
bylo4ka
Новичок
*
Офлайн Офлайн

Сообщений: 1


Просмотр профиля
« : 22 Октябрь 2014, 16:14:34 »

 Доброго время суток,
Есть сортировка файлов, но на большом объеме работает долго. Буду рада советам как можно ускорить) Заранее спасибо)
 
 public File[] execute(File[] _in_file_arr, int[] _in_prty_arr){
        File[] out_file_arr = new File[_in_file_arr.length];
        int[] temp_prty_arr = new int[_in_file_arr.length];
        int temp_int;
        File temp_file;
        for(int i=0;i<_in_file_arr.length;i++){
            temp_prty_arr=_in_prty_arr;
            out_file_arr=_in_file_arr;
        }
        for(int i=temp_prty_arr.length-1;i>=2;i--){
            boolean sorted=true;
            for (int j=0;j<i;j++){
            if(temp_prty_arr[j]>temp_prty_arr[j+1]){
                temp_int=temp_prty_arr[j];
                temp_file=out_file_arr[j];
                temp_prty_arr[j]=temp_prty_arr[j+1];
                out_file_arr[j]=out_file_arr[j+1];
                temp_prty_arr[j+1]=temp_int;
                out_file_arr[j+1]=temp_file;
                sorted=false;
            }
        }
        if(sorted){
            break;
        }
    }
    return(out_file_arr);   
}
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #1 : 22 Октябрь 2014, 22:27:34 »

Насколько я понимаю, тут применен алгоритм сортировки пузырьком. А у него временная сложность (n^2)/2.

Стоит применить другие алгоритмы сортировки.

Или использовать встроенный алгоритм сортировки массивов Java:
Код:
Arrays.sort(some_array);
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!