Sayfalar

14 Kasım 2015 Cumartesi

ETU ACM Java Kursu: 4. Hafta (Max, Median and Sorting)

Merhaba, arkadaşlar. Geçen hafta sizlerle ders notlarını paylaşmaya ne yazık ki vakit bulamadım. Ders notlarının amacı genel olarak ilk 1-2 dersi kaçıranların derse yetişebilmelerini sağlamaktı. Bu noktadan sonra derse hiç gelmeyen birinin, bize yetişmesi zor. Ondan dolayı, bu hafta neler yaptığımızı uzun uzun anlatmayacağım.

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: