Bu hafta, dizilerden, fonksiyonlaradan (static methodlardan) ve döngülerden egzersizler yaptık. Dersin sonunda ise yazdığımız fonksiyonları kullanarak tüm elemanları farklı bir diziyi sıralayan bir fonksiyon yazdık. Dersden sonra ise C++ dersi iptal olduğundan biraz vaktimiz kalmıştı, ve bir diziyi ters çeviren özyinelemeli (recursive) bir fonksiyon yazdık.
public class Ders4 { static void ekranaBas(int[] dizi) { for (int i = 0; i < dizi.length; i++) { System.out.println(dizi[i]); } } static int maksimum(int[] dizi) { int maks = dizi[0]; for (int i = 0; i < dizi.length; i++) { int suanki = dizi[i]; if (suanki > maks) maks = suanki; } return maks; } static int kacinci(int[] dizi, int k) { int sayac = 0; for (int i = 0; i < dizi.length; i++) { int suanki = dizi[i]; if (suanki < k) sayac++; } return sayac; } static int medyan(int dizi[]) { for (int i = 0; i < dizi.length; i++) { int suanki = dizi[i]; if (kacinci(dizi, suanki) == dizi.length / 2) return suanki; } throw new IllegalArgumentException(); } static int ninci(int dizi[], int n) { for (int i = 0; i < dizi.length; i++) { int suanki = dizi[i]; if (kacinci(dizi, suanki) == n) return suanki; } throw new IllegalArgumentException(); } static int[] sirali(int[] dizi) { int[] siralanmis = new int[dizi.length]; for (int i = 0; i < dizi.length; i++) { int suanki = dizi[i]; siralanmis[kacinci(dizi, suanki)] = suanki; } return siralanmis; } static void swap(int[] dizi, int a, int b) { int tmp = dizi[a]; dizi[a] = dizi[b]; dizi[b] = tmp; } static void reverseBetween(int[] str, int beg, int end) { if (beg > end) return; swap(str, beg, end); reverseBetween(str, beg + 1, end - 1); } static void reverse(int[] str) { reverseBetween(str, 0, str.length - 1); } }
Hiç yorum yok:
Yorum Gönder