Algorytm Johnsona szeregowanie zadań - jakie zmienne?

0

Witam serdecznie,

Piszę do Was z prośbą, co do wymyślenia jak zadeklarować poprawnie zmienne, żeby później nie mieć problemu z napisaniem programu.

Chodzi o algorytm Johnsona i szeregowanie zadań.

Potrzebuje znać numery zadań i ich czasy wykonywania na poszczególnych maszynach.

Cały algorytm ma wyglądać mniej więcej tak (przykład pożyczony z innej strony):

Z P1 P2
1 3 4
2 2 5
3 5 1
4 4 2
5 3 2

  1. Podzielenie zadań na dwie grupy. W pierwszej powinny się znaleźć te zadania, dla których czas wykonywania na pierwszej maszynie nie jest dłuższy, niż czas wyknywania na drugiej maszynie. W drugiej grupie - wszystkie pozostałe.

  2. Szeregujemy zadania z pierwszej grupy w taki sposób, aby najpierw były wykonywane te zadania, które mają mniejsze czasy na pierwszej maszynie.

  3. Zadania z drugiej grupy szeregujemy w taki sposób, aby najpierw były wykonywane te zadania, które mają większe czasy na drugiej maszynie.

Ja zrealizowałem to tak :

Kod Java - [rozwiń]
 
 
int[] p1 = {3,2,5,4,3};
int[] p2 = {4,5,1,2,2};
 
int[] gr1 = new int[5];
int[] gr2 = new int[5];
 

Później uszeregowałem zadania i otrzymałem coś takiego: 2 3 4 4 2 - czyli jednostki czasu jakie powinny zajmować zadania na pierwszym procesorze, brakuje mi niestety oznaczeń numerów zadań, na skutek czego nie mogę dopasować zadań do drugiego procesora.

Może ktoś z Was podpowie mi jak prawidłowo przyjąć zmienne i oznaczenia? Czy użyć tablicy dwuwymiarowej?

Pozdrawiam

Zrobiłem to zadanie na takich zmiennych:

		int[][] p1 = {{1,3},{2,4},{3,2},{4,4},{5,2}};
		int[][] p2 = {{1,4},{2,2},{3,6},{4,4},{5,1}};
		
		int[][] gr1 = new int[6][5];
		int[][] gr2 = new int[6][5];

w wyniku otrzymuje juz numer zadania i czasy dla pierwszego procesora, potrzebuje jeszcze dla drugiego. Teraz tablice wyglądają tak:

int[][] gr1= {{3,2}, {1,3}, {4,4}, {2,4}, {5,2}};
int[][] p2 = {{1,4},{2,2},{3,6},{4,4},{5,1}};

Wiecie może jak zrobić żeby uporządkować p2 względem pierwszego indexu gr1? tzn żeby p2 wyglądała tak:

int[][] gr1= {{3,2}, {1,3}, {4,4}, {2,4}, {5,2}};
int[][] p2 = {{3,6},{1,4},{4,4},{2,2},{5,1}};
0

Zadanie odrobione, wszystko działa. Dzięki Shalom :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1