2015-04-29 1 views
-3

Я хотел бы рассказать, сколько времени требуется программе для вставки в дерево для измерения эффективности вставки TreeMap. Я также хочу измерить, сколько времени потребуется для сортировки отдельно. Я делаю это для отчета, который я пишу, где я сравниваю время вставки и время сортировки для TreeMap, linkedList и ArrayList. Для связанныхList и ArrayList я просто собираюсь сначала вставить все и измерить, а затем вызвать list.sort (компаратор) и измерить, сколько времени потребуется для сортировки. Я не уверен, как это сделать для TreeMap.Как долго, сколько времени требуется, чтобы вставить и отсортировать разделители в TreeMap

final long startTime = System.currentTimeMillis();  
     Comparator<String> secondCharComparator = new Comparator<String>() { 
        @Override public int compare(String s1, String s2) { 
         return s1.substring(1, 2).compareTo(s2.substring(1, 2)); 
        }   
       }; 

     SortedMap<String,String> map = 
       new TreeMap<String,String>(secondCharComparator); 
      map.put("a", "one"); 
      map.put("a", "two"); 
      map.put("cd", "three"); 
    final long endTime = System.currentTimeMillis(); 

long totalTime = endTime - startTime; 

ответ

0

Если ваша структура данных «сортируется» по умолчанию; чем нет смысла измерять время, необходимое для «сортировки».

Единственное, что вы можете сделать, это измерить, сколько времени потребуется для INSERT + SORT ваших списков; затем измерьте, сколько времени потребуется для INSERT в вашей TreeMap.

Замечание: вы понимаете, что можете использовать гораздо больше данных? И что ваши наборы данных должны иметь разные свойства (это может иметь огромное значение, например, если элементы, которые вы вставляете/сортируете ... имеют случайное распределение, частично сортируются, сортируются в обратном порядке, ...)