[Java] Sortowanie metodą Selection Sort

ŚwIeRsZcZ
Użytkownik
Użytkownik
Posty: 232
Rejestracja: 8 paź 2006, o 16:21
Płeć: Mężczyzna
Lokalizacja: Wawa
Podziękował: 121 razy
Pomógł: 1 raz

[Java] Sortowanie metodą Selection Sort

Post autor: ŚwIeRsZcZ »

Witam wszystkich ! Potrzebuję napisać takie metody:

# Napisz metodę static void fill(int n), która wypełni n-elementową tablicę losowymi liczbami całkowitymi. Indeksy w tablicy mają zaczynać się od 0.

# Napisz metodę static void show(int i, int j), która wypisze elementy tablicy od indeksu i do indeksu j.

# Napisz metodę, która znajdzie indeks najmniejszego elementu w tablicy pomiędzy elementami o indeksach i i j. Znaleziony indeks ma być zwrócony jako wynik. Do zwracania wyniku służy instrukcja return po której należy umieścić zwracaną wartość.

# Napisz metodę static void swap(int i, int j), która zamieni miejscami elementy tablicy o indeksach i i j.

(powyższe metody będą korzystać ze statycznego atrybutu będącego tablicą liczb całkowitych).

Za jakąkolwiek pomoc będę wielce wdzięczny... obecnie walczę z tematem programowania w Javie, jednak te metody na ten czas mnie przerastają Za pomoc bardzo dziękuję.
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

[Java] Sortowanie metodą Selection Sort

Post autor: smiechowiec »

Kod: Zaznacz cały

package selectionsort;

public class Main {
  // metody będą korzystać ze statycznego atrybutu będącego tablicą liczb całkowitych
  public static int zakres = 10;  // liczby przyjmująwartości od 1 do zakres
  public static int[] tabint = null;
  
//# Napisz metodę static void fill(int n), która wypełni n-elementową tablicę
//  losowymi liczbami całkowitymi. Indeksy w tablicy mają zaczynać się od 0.
  static void fill(int n) {
    tabint = new int[n];
    for(int i = 0; i < n; i++)
      tabint[i] = (int) (zakres * Math.random() + 1);
  }
  
//# Napisz metodę static void show(int i, int j),
// która wypisze elementy tablicy od indeksu i do indeksu j.
  static void show(int i, int j) {
    for(int k = i; k <= j; k++)
      System.out.println("tablica[" + k + "] = " + tabint[k]);
  }
  
//# Napisz metodę, która znajdzie indeks najmniejszego elementu w tablicy pomiędzy elementami o indeksach i i j.
//  Znaleziony indeks ma być zwrócony jako wynik. Do zwracania wyniku służy instrukcja return po której należy umieścić zwracaną wartość.
  static int getmin(int i, int j) {
    int kmin = i;
    for(int k = i + 1; k <= j; k++)
      if (tabint[k] < tabint[kmin])
        kmin = k;
    return kmin;
  }
//# Napisz metodę static void swap(int i, int j),
//  która zamieni miejscami elementy tablicy o indeksach i i j.
  static void swap(int i, int j) {
    int k = tabint[i];
    tabint[i] = tabint[j];
    tabint[j] = k;
  }
  
  
  public Main() {
  }
  
  public static void main(String[] args) {
    fill(10);
    show(0, 9);
    swap(3, 4);
    System.out.println("Po zamianie 3 i 4");
    show(0, 9);
    System.out.println("Najmniejszą wartość ma element tablicy o numerze " + getmin(0, 9));
  }
}
mamograf
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 22 lut 2011, o 21:54
Płeć: Mężczyzna
Lokalizacja: Jelenia Góra

[Java] Sortowanie metodą Selection Sort

Post autor: mamograf »

Dodam tylko że w metodzie getmin jest błąd nadania pierwszego elementu powinno być:

Kod: Zaznacz cały

static int getmin(int i, int j) {
    int kmin = tabint[i];
    for(int k = i + 1; k <= j; k++)
      if (tabint[k] < tabint[kmin])
        kmin = k;
    return kmin;
}
Ostatnio zmieniony 22 lut 2011, o 22:27 przez Afish, łącznie zmieniany 1 raz.
Powód: Kod umieszaj w tagach code
ODPOWIEDZ