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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как скомпилировать и протестировать код 
V
    Опции темы
KatrinIceLand
Дата 14.9.2007, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Подскажите как скомпилировать программу. Какой компайлер использовать и каким образом.

Суть задания: дописать в программу bubblesort, insertion, selection, quick, merge, and radix sorting algorithms (с этим я справились.. надеюсь правильно...) и протестировать, запустить (run) эти алгоритмы on data arrays of size 1.000, 10.000, and 100.000.

Ну а когда мне удасться все это запустить, тогда буду писать Репорт о сделанных выводах...   
Так вот я не знаю как и на чем мне все это тестировать, пожалуйста научите...

Код

//  sorting.java
//
import java.util.*;
public class sorting 
{
    public static void main (String args[]) {
        // Set size of array.
        int arrSize = 1000;   // also, try 10000, 100000 (and possibly 1000000)   
        // Create an array of n random numbers in the range 0-99
        java.util.Random generator = new    java.util.Random(System.currentTimeMillis());
        int[] data;
        int[] dataUnsorted = new int[arrSize];
        for (int i=0 ; i<dataUnsorted.length ; ++i ) {
            dataUnsorted[i] = Math.abs(generator.nextInt()) % 100;
        }
        //printData( data );
 
        // Variables used for timing.
        Date current;
        long startTime, stopTime;

        // Call the sorting algorithms, time, and verify result.
        System.out.println( "bubbleSort =>" );
        data = (int[]) dataUnsorted.clone();
        current = new Date();
        startTime = current.getTime();        
        bubbleSort( data );
        current = new Date();
        stopTime = current.getTime();        
        System.out.print( "\tmsec = " );
        System.out.print( stopTime - startTime );
        verifyResult( data );

        System.out.println( "selectionSort =>" );
        data = (int[]) dataUnsorted.clone();
        current = new Date();
        startTime = current.getTime();        
        selectionSort( data );
        current = new Date();
        stopTime = current.getTime();        
        System.out.print( "\tmsec = " );
        System.out.print( stopTime - startTime );
        verifyResult( data );
        
        System.out.println( "insertionSort =>" );
        data = (int[]) dataUnsorted.clone();
        current = new Date();
        startTime = current.getTime();        
        insertionSort( data );
        current = new Date();
        stopTime = current.getTime();        
        System.out.print( "\tmsec = " );
        System.out.print( stopTime - startTime );
        verifyResult( data );

        System.out.println( "quickSort =>" );
        data = (int[]) dataUnsorted.clone();
        current = new Date();
        startTime = current.getTime();        
        quickSort( data, 0, data.length-1 );
        current = new Date();
        stopTime = current.getTime();        
        System.out.print( "\tmsec = " );
        System.out.print( stopTime - startTime );
        verifyResult( data );
        
        System.out.println( "mergeSort =>" );
        data = (int[]) dataUnsorted.clone();
        current = new Date();
        startTime = current.getTime();        
        mergeSort( data, 0, data.length-1 );
        current = new Date();
        stopTime = current.getTime();        
        System.out.print( "\tmsec = " );
        System.out.print( stopTime - startTime );
        verifyResult( data );
        
        System.out.println( "radixSort =>" );
        data = (int[]) dataUnsorted.clone();
        current = new Date();
        startTime = current.getTime();        
        radixSort( data );
        current = new Date();
        stopTime = current.getTime();        
        System.out.print( "\tmsec = " );
        System.out.print( stopTime - startTime );
        verifyResult( data );
        
    }
    

    public static void printData( int[] data ) {
        for (int i=0 ; i<data.length ; ++i ) {
            System.out.print( ' ' );
            System.out.print( data[i] );
        }
        System.out.println();
    }
    
    
    public static void verifyResult( int[] data ) {
        for (int i=0 ; i<data.length-1 ; ++i ) {
            if ( data[i] > data[i+1] ) {
                System.out.println( " Incorrectly sorted" );
                return;
            }
        }
        System.out.println( " Correctly sorted" );
        return;
    }
    
    
    public static void swap( int[] data, int first, int second ) {
        int tmp = data[first];
        data[first] = data[second];
        data[second] = tmp;
    }
    
    // MY CODE STARTS HERE...
    
   // Bubble SOrt
    public static void bubbleSort( int[] data ) 
   {
        boolean sorted = false;
        int n = data.length;
        for (int pass = 1; (pass < n) && !sorted; ++pass) 
       {
            sorted = true;
            for (int index = 0; index < n - pass; ++index) 
            {
                int nextIndex = index + 1;
                if ( data[index] > data[nextIndex] ) 
                {    
                    swap( data, index, nextIndex );
                    sorted = false;    
                }
            }    
        }
    } 

    // Selection SOrt    
    public static void selectionSort( int[] data ) 
    {
      for (int i=0; i<data.length-1; i++) 
      {
        int minIndex = i;      // Index of smallest remaining value.
        for (int j=i+1; j<data.length; j++) 
        {
            if (data[minIndex] > data[j]) 
           {
                minIndex = j;  // Remember index of new minimum
            }
      }
        if (minIndex != i) 
        { 
            //...  Exchange current element with smallest remaining.
            int temp = data[i];
            data[i] = data[minIndex];
            data[minIndex] = temp;
        }
      }

     } 
    
    // Insertion SOrt
    public static void insertionSort( int[] data ) 
    {
        for (int i = 1; i < data.length; i++)
        {
    int temp = data[i];           
    int j = i - 1;
        
    while (j >= 0 && temp < data[j])
    {
               data[j + 1] = data[j];
                           data[j] = temp;
          
               j--;
    }
         }
     }

    // Merge SOrt    
    public static void mergesort(int[ ] data, int first, int n)
    {
      int n1; // Size of the first half of the array
      int n2; // Size of the second half of the array

      if (n > 1)
      {
         // Compute sizes of the two halves
         n1 = n / 2;
         n2 = n - n1;

         mergesort(data, first, n1);      // Sort data[first] through data[first+n1-1]
         mergesort(data, first + n1, n2); // Sort data[first+n1] to the end

         // Merge the two sorted halves.
         merge(data, first, n1, n2);
       }
   } 
  
    private static void merge(int[ ] data, int first, int n1, int n2)
    // Precondition: data has at least n1 + n2 components starting at data[first]. The first 
    // n1 elements (from data[first] to data[first + n1 – 1] are sorted from smallest 
    // to largest, and the last n2 (from data[first + n1] to data[first + n1 + n2 - 1]) are also
    // sorted from smallest to largest. 
    // Postcondition: Starting at data[first], n1 + n2 elements of data
    // have been rearranged to be sorted from smallest to largest.
    // Note: An OutOfMemoryError can be thrown if there is insufficient
    // memory for an array of n1+n2 ints.
    {
      int[ ] temp = new int[n1+n2]; // Allocate the temporary array
      int copied  = 0; // Number of elements copied from data to temp
      int copied1 = 0; // Number copied from the first half of data
      int copied2 = 0; // Number copied from the second half of data
      int i;           // Array index to copy from temp back into data

      // Merge elements, copying from two halves of data to the temporary array.
      while ((copied1 < n1) && (copied2 < n2))
      {
         if (data[first + copied1] < data[first + n1 + copied2])
            temp[copied++] = data[first + (copied1++)];
         else
            temp[copied++] = data[first + n1 + (copied2++)];
      }

      // Copy any remaining entries in the left and right subarrays.
      while (copied1 < n1)
         temp[copied++] = data[first + (copied1++)];
      while (copied2 < n2)
         temp[copied++] = data[first + n1 + (copied2++)];

      // Copy from temp back to the data array.
      for (i = 0; i < n1+n2; i++)
         data[first + i] = temp[i];
    }
 
    // Quick SOrt   
    public static void quickSort(int data[],int left,int right)
    //pre:left < right
    //post:data[left..right] in ascending order
    {
        int pivot;
        if(left>=right) return;
        pivot=partition(data,left,right);
        quickSortRecursive(data,left,pivot-1);  //sort smaller
        quickSortRecursive(data,pivot+1,right); //sort large
    }
 
    public static void quickSort(int data[],int n)
    //pre:0 <= n <=data.length
    //post:values in data[0...n-1] in ascending order
    {
        quickSortRecursive(data,0,n-1);
    }



    // Radix SOrt     // Ах, да этот я еще не дописала..

    public static void radixSort( int[] data ) 
    {
        
        // Add your code here (remember that the range is 0-99).
    } 
}


--------------------
[... кто изобрел математику? А зачем?...
PM MAIL   Вверх
tux
Дата 14.9.2007, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



PM MAIL Skype GTalk Jabber YIM   Вверх
powerOn
Дата 14.9.2007, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



2 KatrinIceLand, 
Я конечно извиняюсь, но если этот вопрос для тебя еще открыт, то как же ты запускала программы, что в Центре помощи недавно обсуждались?



--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
KatrinIceLand
Дата 15.9.2007, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(powerOn @  14.9.2007,  23:42 Найти цитируемый пост)
Я конечно извиняюсь, но если этот вопрос для тебя еще открыт, то как же ты запускала программы, что в Центре помощи недавно обсуждались?


В том то все и дело, что я до сих про так еще ничего и не запустила  smile 

У меня действительно проблемы именно с компилятором для Java program. На вашем форуме я просмотрела все темы, следовала вашим советам, итог: через 6 часов попыток хоть что-нибудь откомпилировать комп вообще отказывется загружать свой несчатный и ни в чем не повинный Windows, у меня комплекс неполноценности и никакого результата!

Поэтому я обратилась к вам с конкретным вопросом. Я не пишу программы на Java и надеюсь никогда не прийдется, но для предметов Алгоритмы и Операционные системы надо иногда что-то писать на Java.. 

P.S. Borland C++, загрузила, открыла, написала код, нажала run  smile   
Неужели с Javой нельзя так же просто  smile 
--------------------
[... кто изобрел математику? А зачем?...
PM MAIL   Вверх
powerOn
Дата 15.9.2007, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Можно NetBeans IDE


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
KatrinIceLand
Дата 15.9.2007, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(powerOn @  15.9.2007,  00:28 Найти цитируемый пост)
Можно NetBeans IDE 


Качаю. Если честно, то у меня уже испуг на попытки запустить компилятор для Java..
Вот что может компьютер, а точнее Java может сделать с человеком smile

Добавлено через 12 минут и 6 секунд
Ok, first warning: no JDK was found. А вот этот JDK вообще не хочет грузиться на мой комп или я не то пытаюсь закачать?
Второе предупреждение: A Suitable JVM could not be found. Please select a JVM by selecting its java.exe file. 
И что я должна теперь выбрать? Или что мне еще надо закачать? Подскажите пожалуйста.

Это сообщение отредактировал(а) KatrinIceLand - 15.9.2007, 00:50
--------------------
[... кто изобрел математику? А зачем?...
PM MAIL   Вверх
KatrinIceLand
Дата 15.9.2007, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я даже инструкцию по установлению программы почитала.
Пунк 1: Once you have downloaded the installer file, double-click the installer's icon to launch the installer. 

Мне уже не смешно, но в моей ситутации не хватает 0 пункта. До иконки пока еще не дошли smile
--------------------
[... кто изобрел математику? А зачем?...
PM MAIL   Вверх
tux
Дата 15.9.2007, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



Цитата(KatrinIceLand @  15.9.2007,  01:06 Найти цитируемый пост)
Мне уже не смешно, но в моей ситутации не хватает 0 пункта. До иконки пока еще не дошли

Мне тоже уже не смешно. Испуг мешает читать? Цитата отсюда - http://forum.vingrad.ru/faq/topic-157939.html:
Цитата

Скачайте последнюю версию JDK (Java Development Kit). Ее можно найти по этой ссылке: Java SDK 5.0. Перейдите по ссылке http://java.sun.com/javase/downloads/index_jdk5.jsp и cкачайте JDK для той платформы, которую будете использовать.

После установки проверьте, что в системную переменную PATH добавлен каталог, в котором находится java.exe и javac.exe. Сделать это можно так (в Windows):

Start --> Settings --> Control Panel --> System --> Advanced --> Environment Variables
(Пуск --> Настройки --> Панель управления --> Система --> Дополнительно --> Переменные среды)

Найдите в списке переменную PATH и добавьте к ней путь к директории, в которой находятся файлы java.exe и javac.exe. Например, у меня этот путь – D:\JavaTools\jdk_1.5\bin. Если у вас еще нет переменной PATH, создайте ее. Также рекомендуется создать переменную с именем JAVA_HOME, ее значением будет путь к каталогу, в который вы установили JDK (например, D:\JavaTools\jdk_1.5). Проверить, все ли в порядке, можно так: запустить командную строку (Пуск --> Выполнить, введите слово cmd и нажмите Enter) и ввести команду java

PM MAIL Skype GTalk Jabber YIM   Вверх
KatrinIceLand
Дата 15.9.2007, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Открываю Java SDK 5.0

Читаю: "Download JDK 5
 Confused or having trouble downloading or installing? See the download help page.
 Supported System Configurations" 

нет никакой ссылки на скачивание этой программы! Не вижу я нигде :(

С этими ссылками проблем нет, все можно закачать:
JDK 5.0 Update 12 with NetBeans IDE 5.5.1
This distribution of the Java SE Development Kit (JDK) includes NetBeans IDE, which is a powerful integrated development environment for developing applications on the Java platform.  

Но мне же надо первую ссылку закачать, правильно? 
Похоже тут дело уже не испуге... Но не надо меня критиковать, просто помогите. Я действительно запуталась и не понимаю как же все это наконец запустить.
--------------------
[... кто изобрел математику? А зачем?...
PM MAIL   Вверх
powerOn
Дата 15.9.2007, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Скачать JDK самой последней на текущей момент версии (6.0) можно тут. Ссылка там точно есть.  smile 



--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
KatrinIceLand
Дата 15.9.2007, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(powerOn @  15.9.2007,  14:05 Найти цитируемый пост)
Скачать JDK самой последней на текущей момент версии (6.0) можно тут. Ссылка там точно есть.   


спасибо smile
--------------------
[... кто изобрел математику? А зачем?...
PM MAIL   Вверх
KatrinIceLand
Дата 15.9.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Всем спасибо! Все получилось  smile 

Буду разбираться с тестированием smile
--------------------
[... кто изобрел математику? А зачем?...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java tools & IDE's | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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