Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Java] Быстрая сортировка


Автор: Merhaba 17.5.2011, 20:49
Помогите Пожалуйста написать метод, который будет сортировать массив в порядке возрастания из 50000 элементов за минимально возможный промежуток времени. (как можно быстрее)

Автор: Silent 18.5.2011, 09:44
1) В Java есть класс Arrays:
Код

// File   : data-arrays/dblsort/Dblsrt.java
// Purpose: To show how Arrays.sort() works with arrays
//          of both primitive and object values.
// Author : Fred Swartz 2006-08-23.  Public domain.

import java.util.Arrays;

public class Dblsrt {
    //========================================================= main
    public static void main(String[] args) {
        //... 1. Sort strings - or any other Comparable objects.
        String[] names = {"Zoe", "Alison", "David"};
        Arrays.sort(names);
        System.out.println(Arrays.toString(names));

        //... 2. Sort doubles or other primitives.
        double[] lengths = {120.0, 0.5, 0.0, 999.0, 77.3};
        Arrays.sort(lengths);
        System.out.println(Arrays.toString(lengths));
    }
}



2) можно воспользоваться методом Sort() для коллекций (ArrayList и т.п.)
3) реализовать самостоятельно, например сортировку Хоара

Насчет быстродействия этих трех методов, мое мнение - самым быстрым будет первый, потом третий (если ошибок не будет), а третий - самый тормознутый, хотя я могу ошибаться. Погоняйте тесты на время, а то мне тоже интересно

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)