Java Algoritmaları

Java Stack Sınıfını Kullanmak

public class Stack extends Vector Stack sınıfı son giren ilk çıkar(Last in first out ((LIFO)) algoritmasına göre çalışan bir yığındır. Stack sınıfı vector sınıfını beş method ile extend eder böylelikle bir vektörü stack olarak kullanabilmeye olanak sağlar. Bir stack nesnesi yaratıldığında, içerisinde hiç bir eleman bulundurmaz. Stack algoritmasının yanında daha geniş ve tutarlı LIFO yapısı …

Java Stack Sınıfını Kullanmak Read More »

Java’da Sıralı bir Diziye Ekleme Yeri Bulmak

Verilmiş sıralı bir dizi ve girilen bir değer için eğer değer dizide varsa dizideki yerini eğer dizide yoksa dizide eklenebileceği yeri döndüren algoritma.(Not: Dizide aynı elemandan sadece bir tane olduğu varsayılacaktır.) Algoritma için  bir kaç örnek [1,3,5,6], 5 -> 2 [1,3,5,6], 2 -> 1 [1,3,5,6], 7 -> 4 [1,3,5,6], 0 -> 0 Bu aslında binary …

Java’da Sıralı bir Diziye Ekleme Yeri Bulmak Read More »

Java’da Üç Sayının Toplamının Bir Sayıya Yakınlığı

Verilmiş olan S sayı dizisi ve N sayısı için, dizideki herhangi üç sayının  N sayısına en yakın olan toplamı bulan algoritma. public int threeSumClosest(int[] nums, int target) { int min = Integer.MAX_VALUE; int result = 0; Arrays.sort(nums); for (int i = 0; i < nums.length; i++) { int j = i + 1; int k …

Java’da Üç Sayının Toplamının Bir Sayıya Yakınlığı Read More »

Java’da String’i Integer’a Çevirmek

String değişkeninin içerisindeki sayıyı bir integer değişkenine çevirmek için kullanılabilecek bir algoritma. Dikkat edilmesi gereken noktalar Null veya Boş bir String olabilir String içerisinde boşluklar olabilir + veya – işaretleri olabilir Minimum ve  Maksimum değeri aşmaması gerekiyor public int atoi(String str) { if (str == null || str.length() < 1) return 0; // trim white …

Java’da String’i Integer’a Çevirmek Read More »

Java’da Bir Sayının Dizideki İki Sayının Toplamı İle Bulunması

Bir integer dizisinde ki iki sayının toplanarak önceden belirtilmiş bir sayıya eşit olup olmayacağını bulan algoritma. Örnek olarak Sayı Dizimiz = {2, 7, 11, 15}, hedef=9 olursa algoritmamız bize 0 ve 1’i verecektir. Bu verilen değerler dizideki iki sayının toplanarak hedef’i oluşturan sayıların dizideki yeridir. Bu problemi çözmek için kullanılan Java için en iyi yöntemlerden …

Java’da Bir Sayının Dizideki İki Sayının Toplamı İle Bulunması Read More »

Java’da K’nıncı En Büyük Elemanı Bulmak

Verilen [3,2,1,5,6,4]  dizisi için k = 2 ise dizideki en büyük ikinci eleman  5 olmalıdır.. Java’da K’nıncı en büyük elemanı bulmak için çeşitli yöntemlere gidilebilir. Aşağıdaki kodda belirtildiği gibi dizi sıralanıp sondan k önceki eleman alınarak çözüme ulaşılabilir. Zaman O(nlog(n)). public int findKthLargest(int[] nums, int k) { Arrays.sort(nums); return nums[nums.length-k]; } Bu problem QuickSort algoritması …

Java’da K’nıncı En Büyük Elemanı Bulmak Read More »

Java’da iki Sıralı Dizinin Medyanını Bulmak

Medyan : Verilen bir sayı dizisinde terimler büyüklük sırasına göre yazıldıktan sonra ortadaki sayıya medyan denir. Kaynak: http://www.matematikcanavari.net/2013/04/medyan-nedir.html Verilen A ve B dizileri sıralanmış olmak üzere medyanını bulma algoritmasının Algoritma Karşılıklılığı O(log(m+n)) public double findMedianSortedArrays(int[] nums1, int[] nums2) { int total = nums1.length+nums2.length; if(total%2==0){ return (findKth(total/2+1, nums1, nums2, 0, 0)+findKth(total/2, nums1, nums2, 0, 0))/2.0; }else{ return findKth(total/2+1, …

Java’da iki Sıralı Dizinin Medyanını Bulmak Read More »

Java’da iki Stringin Denkşekilliliği (Isomorphism)

Başlamadan önce burada Sadi Evren Şeker Hocamızın Isomorphism üzerine güzel bir yazısı bulunmakta link üzerinden okuyabilirsiniz. http://bilgisayarkavramlari.sadievrenseker.com/2009/06/18/denksekillilik-isomorphism/ Girilen iki tane s ve t String değişkenleri olarak adlandıralım, isomorphic olup olmadığına karar veren algoritma. S deki karakterler yerine başka karakterler konulup t elde edilebiliyorsa bunlar isomorphic’tir. Örnek olarak “egg” ve  “add” isomorphic’tir, e karekteri yerine a ve …

Java’da iki Stringin Denkşekilliliği (Isomorphism) Read More »