Java-programa

14 отговора 530 прегледа
#1

Java-programa

Trqbva da se sazdade Java -programa s ime RekMergeSort s pomoshtta na Algorityma Merge -Sort.
Programata trqbva da mozhe da poluchava redica ot int-stoinosti ,zadadeni kato startov parametar,posle tezi trqbva da se sortirat rekursivno ...,i nakraja da se predstavjat s pomoshtta na System.out.print()v sortirana posledovatelsnost.

Sigurno ima hora sred vas,koito mogat da se spravjat s tazi zadacha,ako mozhete pomognete mi.Az sam v samoto nachalo i mi lipsva opit ,za da se spravja s neja.
Blagodarja predvaritelno...

Отговор
в отговор на Deva_guru #2

Re: Java-programa



class MergeSort {

static void sort(int a[], int lo, int hi, int scratch[]) {

if (lo >= hi) {

return;

}
int mid = (lo+hi) / 2;

sort(a, lo, mid, scratch);

sort(a, mid+1, hi, scratch);

int k, t_lo = lo, t_hi = mid+1;

for (k = lo; k <= hi; k++) {

if ((t_lo <= mid) && ((t_hi > hi) || (a[t_lo] < a[t_hi]))) {

scratch[k] = a[t_lo++];

} else {

scratch[k] = a[t_hi++];

}

}

for (k = lo; k <= hi; k++) {

a[k] = scratch[k];

}

}

public static void main(String[] args)
{

int scratch[] = new int[args.length];

int src[] = new int[args.length];

for (int i = 0; i < src.length; i++) {

src =Integer.parseInt(args);

}

sort(src, 0, src.length-1, scratch);

for (int i = 0; i < scratch.length; i ++) {

System.out.println(scratch);

}
}

}


Аре тичай да кажеш на мама, че имаш 6


All warfare is based on deception.
Sun Tzu [1:18]
Отговор
в отговор на Whitelion #3

Re: Java-programa

Blagodarja ti bate,ticham ,ticham da se pohvalja,veche useshtam che shte ima palachinki za nagrada:)
Edno ogromno blagodarja na teb,valshebniko i vsichko hubavo

Отговор
в отговор на Whitelion #4

Re: Java-programa

Mezhdu drugoto,Vylshebniko,programata ,taka,kakto si ja napisal dava greshka:)

Отговор
в отговор на Deva_guru #5

Re: Java-programa

Vizh sega ,az kakvo uspiah da napravja po temata na zadachata ,obache javno lipsvat njakakvi glavni elementi i ne moga da ja compiliram....ako njakoi otkriva dopusnatite ,greshki,molja da mi spodeli koi sa!

import java.io.*;

public class Mergesort{
public static void main(String[ ] args){
int n;
try{
n = Integer.parseInt(args[0]); }
catch(Exception ex) {}
final String [] BLANKS = " ";
int i;

int[ ] data = br.readLine;

System.out.println("Here is the entire original array:" +br.readLine);
for (i = 0; i < data.length; i++)
System.out.print(data + BLANKS);
System.out.println();
}
public static int readInt() {
int value=0;

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
try{
value=Integer.parseInt(br.readLine());
} catch (Exception ex) {}

return value;
}
// Sort the numbers, and print the result with two blanks after each number.
mergesort(data, 1, data.length-2);

for (i = 0; i < data.length; i++)
System.out.println(data + BLANKS);
System.out.println( );

{
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)

{
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;
}

public static int readInt() {
int value=0;

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
try{
value=Integer.parseInt(br.readLine());
} catch (Exception ex) {}

return value;
}
}

Отговор
в отговор на Deva_guru #6

Re: Java-programa

Програмата НЕ ДАВА грешка, вярвай ми.

Тези твоите допълнения в нея я карат да не се компилира. От оная добавка дето се мъчиш да четеш от конзола няма смисъл. Програмта приема редицата като аргументи на самата програма.

Между другото в кой университет ги дават тия задачи?

All warfare is based on deception.
Sun Tzu [1:18][/b

Редактирано от Whitelion на

Отговор
в отговор на Whitelion #7

Re: Java-programa

maj shte se okazhesh prav ....a zadachite gi davat v Heinrich-Heine-Universitдt-Duesseldorf.az cheta v momenta na nemski i na bg i ot vreme na vreme vsichko mnogo mi se obarkva v glavata,zashtoto nashite izpolzvat edni termini,a tezi tuk -drugi, i stava LUDNICA!:)
i ...ne znam dali e normalno,no tazi zadacha se dava na studenti na 5-ta sedmica ot purvi semestar,spored men mnogo byrzat s materiala.povecheto ot kolegite mi sedjat bezpomoshtni i nishto ne mogat da shvanat...tazhna kartinka...

Отговор
в отговор на Deva_guru #8

Re: Java-programa

Аха, така и предположих, че не някой БГ университет
Е, добре де, дерзай там, пък като си дойдеш в БГ можеш да почерпиш някоя бира


All warfare is based on deception.
Sun Tzu [1:18]
Отговор
в отговор на Whitelion #9

Re: Java-programa

za birata-kakav e problema?bira vinagi shte ima,konsumatori-sashto:)...povodi -sashto:)
samo se chudja ,kakva tolkova goljama razlika ima mezhdu tukashnite i bulgarskite metodi na prepodavane .... i da ne bi materiala da ti se vijda tvarde elementaren?hm,zashtoto na men nikak ne mi se struva takav

prijatva i usmihnata vecher sega ot men,vylshebniko:)i da ti e vkusna birata naj-veche!

Отговор
в отговор на Deva_guru #10

Нямах това предвид

Задачката си е много хубава и за нивото, на което ви я дават не мисля, че е от най-лесните Работата е, че и аз преподават в един университет и гледам какво прави конкуренцията, затова разпитвам така


All warfare is based on deception.
Sun Tzu [1:18]
Отговор
в отговор на Whitelion #11

Re: Нямах това предвид

otkrivat amerika

Отговор
в отговор на Whitelion #12

Re: Нямах това предвид

lelee,tuk si imam rabota s istinski profesionalisti!:)
ako te interesuva oshte neshto,mozhesh da razchitash na men,shte ti razkazha za konkurenciata:)s udovolstvie shte igraq rolqta na shpionin:)
a mezhdu drugoto,sistemata tuk e takava,che nishto ot lekciite i uprazhnenijata ne e zadalzhitelno za poseshtenie.Vseki sam si precenjava dali shte chete samostoiatelno ,ili shte slusha v unito.
Zatova puk vsjaka sedmica imame domashni,koito sa zadalzhitelni i ot koito trupame tochki.Celta e da se dostigne edin minimum ot tochki,za da poluchish pravo da se javish na izpit na kraja na semestara....ta taka
Moga da ti pokazha i drugi primerni zadachi,i bez tova ,kakto kazah ,vsjaka sedmica poluchavam novi :)
Badi zdrav:)

Отговор
в отговор на Builder #13

Re: Otkrivat Amerika

A,Builder,ako pitash men...otkrivat na Amerika zadnite chasti

Отговор
в отговор на Deva_guru #14

Re: Нямах това предвид

О, супер! Ако имаш някоя и друга задачка, ще съм ти благодарен, ако ми ги пратиш на мейлчето да ги разгледам [email protected]


All warfare is based on deception.
Sun Tzu [1:18]
Отговор
в отговор на Deva_guru #15

Re: Otkrivat Amerika

sorry,
replikata mi be adresirana povecheto kam "Whitelion" - stot mi e staro priatelche

Отговор