Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Veri yapilari ve algoritmalar dersleri açıklaması #586

Open
wants to merge 48 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
9b41969
nedir güncellendi.
dilanacunn Sep 12, 2021
89adc1a
Deneme Ödev oluşturuldu.
dilanacunn Sep 12, 2021
5b23feb
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
ef80726
Update README.md
dilanacunn Sep 12, 2021
6f9435a
Update readme.md
dilanacunn Sep 12, 2021
8934902
Update readme.md
dilanacunn Sep 12, 2021
9708bcf
Update readme.md
dilanacunn Sep 12, 2021
b9d18f3
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
6000022
Update README.md
dilanacunn Sep 12, 2021
2189e1b
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
284b089
Update README.md
dilanacunn Sep 12, 2021
b28a6e6
Update README.md
dilanacunn Sep 12, 2021
6bdaf0f
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
390786d
Update README.md
dilanacunn Sep 12, 2021
d2cef61
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
1d19134
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
5e9c9fa
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
5b13f6e
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
4305570
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
10bd04f
Update README.md
dilanacunn Sep 12, 2021
017fa56
Update README.md
dilanacunn Sep 12, 2021
e1b8b26
Update README.md
dilanacunn Sep 12, 2021
317dbe5
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
87f35a3
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
29eef1a
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
25ddbfc
Update readme.md
dilanacunn Sep 12, 2021
b309932
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
c0441a9
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
7e93ede
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
e2df939
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
25dfc48
Update readme.md
dilanacunn Sep 12, 2021
0809721
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
ad34cec
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
6cd90cc
Update readme.md
dilanacunn Sep 12, 2021
8ef8af9
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
23d78c5
Update README.md
dilanacunn Sep 12, 2021
f25162f
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
72aac95
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
14eea89
Update and rename readme.md to README.md
dilanacunn Sep 12, 2021
987ad55
Update README.md
dilanacunn Sep 12, 2021
ce39f4c
Update README.md
dilanacunn Sep 12, 2021
773c119
Update readme.md
dilanacunn Sep 12, 2021
0503e7c
Create Sorular
dilanacunn Sep 12, 2021
a5272d7
Update readme.md
dilanacunn Sep 12, 2021
c26f64a
Update Sorular
dilanacunn Sep 12, 2021
ac9ce23
Update and rename veri-yapilari-algoritmalar/Sorular to veri-yapilari…
dilanacunn Sep 12, 2021
12b94a9
Update README.md
dilanacunn Sep 12, 2021
11ad806
Update README.md
dilanacunn Sep 12, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions veri-yapilari-algoritmalar/algoritma-analiz/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Algoritma Analizi
======

Bir problemi çözen birden fazla algoritma olabilir. Hangi algoritmayı seçeceğim o an elimdeki kaynaklara bağlıdır. Bu kaynaklar ne olabilir?

* Programcının harcadığı süre,
* Kullanılan hafıza,
* Programın çalışma zamanı.

Peki bunlara göre algoritma analizini nasıl yapabiliriz? Hadi öğrenelim!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/algoritma-analiz/readme.md

This file was deleted.

10 changes: 10 additions & 0 deletions veri-yapilari-algoritmalar/algoritma-nedir/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Algoritma Nedir?
======

Herkese merhaba,

Veri yapıları ve algoritmalar kursunun ilk dersindeyiz. Bir sorunu çözmek veya sonuca ulaşmak için tasarladığımız adımlara algoritma diyoruz.

Bu algoritmalar için çözmek istediğimiz problemler, veriyi farklı şekillerde ihtiyaç duyduğu düzenlemeyi gerektirir.

Daha hazlası için hadi kursa başlayalım!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/algoritma-nedir/readme.md

This file was deleted.

8 changes: 8 additions & 0 deletions veri-yapilari-algoritmalar/array/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Arrray
======

Birden çok bilgiyi bir arada tutmak gerekiyor olabilir. Bu gibi durumları iki başlık aktında işleyeceğiz:
* Array
* Linked List

Bu derste arraylerden bahsediyor olacağız!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/array/readme.md

This file was deleted.

6 changes: 6 additions & 0 deletions veri-yapilari-algoritmalar/big-o/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Big O Notatiton
======

Algoritmaların sadece 1 input boyutuna göre karşılaştırmalarına bakıp karar veremiyoruz. Genel yapısını bize verecek bir analize ihtiyacımız var. Bu aşamada da Big O Notation kullanıyoruz.

Big O Notation nedir? Örneklerle öğrenelim!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/big-o/readme.md

This file was deleted.

7 changes: 6 additions & 1 deletion veri-yapilari-algoritmalar/bilgi-ifade/readme.md
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
#
Bilginin Bilgisayarda İfadesi
======

Bilgisayar bilgiyi "0" ve "1" kullanarak ifade eder. Peki "0" ve "1" kullanarak sadece iki şey mi ifade edilir? Nasıl ki bir nesneyi harfleri yan yana getirip ifade ediyorsak bilgisayar da "0" ve "1" i yan yana getirerek ifade eder.

O halde "0" ve "1" lerin kullanıldığı bu sisteme Binary Sistem denir.
6 changes: 6 additions & 0 deletions veri-yapilari-algoritmalar/binary-search-tree/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Binary Search Tree
======

Elimizde sıralı bir array (dizi) olduğu zaman istediğimiz bir elemanı aramak belirli bir zaman alıyordu. Binary search tree bir veri yapısıdır. Linked list'lerde bir sonraki elemana referans vermek varken Binary search tree'de sağ ve sola referans vermek vardır. Sağ tarafta kendinden büyük elemanlar, sol tarafta kendinden küçük elemanlar olması gerekir. Buradaki mantık random eleman bulmak değil sırayla sağındaki ve solundaki değerlere bakarak ilerlemektedir.

Videoya geçelim!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/binary-search-tree/readme.md

This file was deleted.

6 changes: 6 additions & 0 deletions veri-yapilari-algoritmalar/binary-search/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Binary Serach
======

Elimizde bir elemanı belirlediğimiz alanda ararken Linear Search kullanıyorduk. Binary Search belirlediğimiz alanın sıralı olduğunu var sayıyor. Bu sırayı kullanarak daha hızlı bir şekilde bize sonucu verecek bir yere götürmeye çalışıyor. Nasıl?

Videoya göz atalım!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/binary-search/readme.md

This file was deleted.

11 changes: 10 additions & 1 deletion veri-yapilari-algoritmalar/hash-collision/readme.md
Original file line number Diff line number Diff line change
@@ -1 +1,10 @@
#
Hash Collision
======

Hush Function'da her zaman farklı çıktıların farklı sonuçları veremeyeceğini konuşmuştuk. Bizim hızlı bir hash table oluşturabilmemiz için tasarladığımız hash function kaliteli olmalı. Yani collision'ı en az şekilde tutması lazım. İyi bir hash table istiyorsak iyi bir hush function olması lazım, hush function'ın iyisini de şu şekilde açıklayabiliriz:

* Collision'ın olmaması.
* Her seferinde aynı imput'u aynı output'a vermesi.
* Array'ın aınırları içerisinde elemanlar üretmesi.

Öyleyse video'ya geçelim!
8 changes: 8 additions & 0 deletions veri-yapilari-algoritmalar/hash-function/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Hash Function
======

Hash Function her seferinde aynı girdiye aynı sonucu vermesini istiyoruz. Aynı zamanda da farklı girdilere farklı çıktılar vermeli. Hash Fonction'ın çıkatıları array'ın kaç elemanının olduğuyla alakalıdır. Bunun dışında eleman vermemeli.

Bazı durumlarda farklı çıktılar aynı sonuçları verebiliyor. Buna "collision" denir.

Hadi video'ya geçelim!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/hash-function/readme.md

This file was deleted.

6 changes: 6 additions & 0 deletions veri-yapilari-algoritmalar/hash-table/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Hash Table
======

Array'leri yan yana tuttuğumuz kutucuklar olarak düşünmüştük. Array'lerde hangi elemana ulaşacak olursak olalım aynı sürede ulaşıyorduk. Bizim istediğimiz ise elemanlara lokasyon bazlı değil isim bazlı ulaşmak olacak. Bu yapı için de Hash Table kullanacağız.

Detaylar için video'yu izleyelim!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/hash-table/readme.md

This file was deleted.

6 changes: 6 additions & 0 deletions veri-yapilari-algoritmalar/insertion-sort/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Insertion Sort
======

Insertion Sort, en basit sorting algoritmalarından biridir. Bu algoritma çalışırken ekstra alan kaplamıyor.

Gelin örneklerle biraz derinlere inelim!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/insertion-sort/readme.md

This file was deleted.

5 changes: 5 additions & 0 deletions veri-yapilari-algoritmalar/linear-search/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Linear Search
======

Linear Search, aslında tek tek elemanlar arasında dolanıp istediğimiz elemanın olup olmadığına bakmak diyebiliriz.
En basit seraching algoritması olan Linear Search algoritmasına bakalım!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/linear-search/readme.md

This file was deleted.

4 changes: 4 additions & 0 deletions veri-yapilari-algoritmalar/linked-list-add-delete/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Linked List Eleman Ekleme/Silme
======

Linked List'te eleman ekleme ve silmenin Array'lere göre daha kolay olduğunu konuştuk. Linked List'te eleman ekleme silmenin nasıl olduğunu öğrenmek için videoyu izleyelim!

This file was deleted.

8 changes: 8 additions & 0 deletions veri-yapilari-algoritmalar/linked-list-array/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Linked List vs Array
======

Önceki videolarda Array ve Linked List'den bahsettik. Madem Linked List diye bir şey var, peki biz neden Array kullanalım?

Array'lerde elemanlar hafızada yan yana tutulurken Linked List'te arattığımız elemana Array'lerden daha kolay ulaşırız.

Bu derste Array ve Linked karşılaştırması yapacağız, iyi seyirler!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/linked-list-array/readme.md

This file was deleted.

4 changes: 4 additions & 0 deletions veri-yapilari-algoritmalar/linked-list/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Linked List
======

Bizim bir arada tutmak istediğimiz bilgiler vardı. Bunları yan yana Arrayler şeklinde tutabiliyorduk. Aslında bilgileri bir arada tutmak için her zaman Array kullanmak zorunda değiliz. Dağınık tutarak yeni eleman eklerken kolayca ekleyebiliriz. Bu mantığa göre bir arada tutmak için Linked List kullanırız.
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/linked-list/readme.md

This file was deleted.

4 changes: 4 additions & 0 deletions veri-yapilari-algoritmalar/merge-sort/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Merge Sort
======

Insertion Sort'un Big O Notation'ı O(n^2) idi. Yani bizim imputumuz arttığında zaman imputumuzun karesi şeklinde çalışma zamanı artıyor. Bu da büyük inputlar için çok büyük bir zaman kaybına sebep olabiliyor. Sorting'de daha hızlı nasıl sıralama yaparız? Bunun için Merge Sort'a bakalım!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/merge-sort/readme.md

This file was deleted.

13 changes: 13 additions & 0 deletions veri-yapilari-algoritmalar/odev-1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Ödev
======

Bir kütüphanede çalışıyorsunuz. Bu kütüphaneye öğlen saatinde 1280 yeni farklı kitap geliyor. Kitaplar, uzun düz bir sıra halinde indirilioyr ancak sıraları bozuk halde. Üstelik otomatik sıralama sistemi de arızalı. Daha önemlisi yarın okullar açılıyor yani öğrenciler bu kitaplar için sıraya girmeye başlayacak. Hepsini vaktinde nasıl sıralayabilirsiniz?

Cevap:
======

İlk olarak probleme sıranın bir ucundan ilk iki kitapla başlayın. Eğer ilk iki kitap sıralı ise oldukları gibi bırakın, değilse değiştirin. Sonra ikinci ve üçüncü kitaplara bakın. İşlemi sıranın sonu gelene kadar tekrar edin. Bir noktada, en sonda olması gereken kitaba denk geliceksiniz ve onu sonrasında doğru yere kitap gelene kadar aşağıya kaydırarak devam edin. Sonra en başa dönün ve işlemi sondan ikinci kitabın yerini bulana kadar tekrarlayın. Ve bütün kitaplar sıralanana kadar devam edin. Bu yönteme "Kabarcık Sıralama" denir. Basit ama yavaştır. İlk Seferde 1279 karşılaştırma yapmış olursunuz, sonra 1278 olur ve toplamda 818.560 karşılaştırmaya ulaşır. Her karşılaştırma bir saniye alsa işlem dokuz günden fazla sürer.

İkinci yol olarak sadece ilk iki kitabı sıralayarak başlamak olur. Sonra üçüncü kitabı alıp ikinci sıradaki kitapla karşılaştırın. İkinci kitaptan önce ise yerlerini değiştirin sonra onu ilk sıradaki kitapla karşılaştırın, gerekirse yerini değiştirin. Şimdilik ilk üç kitabı sıraladınız. Her seferinde sıralanan tarafa yeni litap eklemeye devam edin, yeni kitabı bir önceki kitapla karşılaştırıp değiştirerek o zamana kadar sıralananların srasına doğru şekilde yerleşene kadar devam edin. Birinci yolun aksine, her çifti karşılaştırmayı gerektirmez. Ortalama olarak her kitabı sadece kendinden önceki gelen kitapların yarısıyla karşılaştırmamız gerekir. Bu durumda toplam karşılaştırma sayısı 409.280 olup yaklaşık beş gün sürer.

Hala çok fazla karşılaştırma yapıyorsunuz. İşte size daha iyi bir fikir: Önce rast gele bir kitap seçin. Buna "parça" deyin ve diğer bütün kitaplarla karşılaştırın. Sonra sırayı ikiye bölün, parçadan önce gelen bütün kitapları sol tarafa, sonra gelen parçaları sağ tarafa ayırınız. Soldaki bütün ktapları sağdaki kitaplarla tekrar tekrar karşılaştırma zorunda kalmayıp hayli zaman kazandınız. Şimdi de sadece soldaki kitaplara bakın, yine rast gele bir parça kitap seçin. Ve öncesinde kalan kitapları sonra gelenlerden ayırabilirsiniz. Küçük bir alt grup elde edene kadar devam edin. Her parçalama işlemi 1280 karşılaştırma gerektirir. Eğer parçalar eşit dağılmışsa kitapları on kitaplık 128 alt gruba bölmek yedi sefer ya da 8960 saniye gerektiri. Alt grupları tasnşf etmek her birine yaklaşık 22 saniye ekler. Bu yöntem ile kitapları üç buçuk saatin altında sıralayabilirsiniz. Ancak tek sorunu var, parçalar orantısız olursa hiç zaman kazanamazsınız. Neyseki bu nadiren olur.
9 changes: 9 additions & 0 deletions veri-yapilari-algoritmalar/queue/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Queue - FİFO (First İn First Out)
======

Stack veri yapısında ilk başta giren eleman en sonda çıkıyordu. Queue veri yapısında ilk giren eleman ilk başta çıkıyor.

* Enqueue: Queue veri yapısına eleman ekleme.
* Dequeue: Queue veri yapısından eleman çıkarma.

Video'yu izleyerek daha fazla ayrıntıya ulaşalım!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/queue/readme.md

This file was deleted.

7 changes: 6 additions & 1 deletion veri-yapilari-algoritmalar/quick-sort/readme.md
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
#
Quick Sort
======

Quick sort, worst sort'ta olduğu gibi problemimizi küçük parçalara ayırıp çalışma yapacağız. Bu mantığı pivot ile sağlıyoruz. Seçeceğimiz pivot öyle değer olsun ki pivotun solunda bundan küçük değerler, pivotun sağında bundan büyük büyük değerler olsun.

Örneklerle detaya inelim!
4 changes: 4 additions & 0 deletions veri-yapilari-algoritmalar/ram-model/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
RAM Modeli
======

Farklı bilgisayarlarda belli algoritmaları denemek olmuyordu. Bizim genellenebilir analize ihtiyacımız var. Genellenebilir analiz yapmak için her algoritmayı aynı bilgisayar ile test ediyor gibi yapacağız. Buna da RAM diyoruz. Hadi RAM'in özellikleri için video'ya geçelim!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/ram-model/readme.md

This file was deleted.

8 changes: 8 additions & 0 deletions veri-yapilari-algoritmalar/recursion/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Recursion
======

Problemleri bütün olarak değil de parçalayarak çözmek istiyorsak daha küçük ifade etmemiz gerekiyor. Ne demek istiyoruz?

Problemi, aynı problemin daha küçüğü olarak ifade edip bu problemi adım adım küçültüp nerede durduğumuzu belirttiğimiz bir yapıya dönüşüyor. Buna Recursion denir.

Daha iyi anlamak için videoya göz atın!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/recursion/readme.md

This file was deleted.

8 changes: 8 additions & 0 deletions veri-yapilari-algoritmalar/sayi-sistem/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Sayı Sistemleri
======

Sayıları ifade ederken Onlu Sayı Sistemi kullanılır.

Bu derste onlu sayı sistemi ve binary sistem arasındaki dönüşümleri öğrenceğiz. Peki biz sayıları binary sistem ile ifade ediyoruz ama sayı haricindeki şeyleri nasıl ifade edebiliriz?

Bir sonraki derste de buna bakalım!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/sayi-sistem/readme.md

This file was deleted.

6 changes: 6 additions & 0 deletions veri-yapilari-algoritmalar/sayisal-olmayan/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Sayısal Olmayan Verilerin Tutulması
======

Bilgisayarda veriler "1" ve "0" olarak tutuluyor. Onlu sayı sistemi ve binasry sistem arasındaki dönüşümü öğrendik.

Hadi sayı harici verilerin nasıl ifade edildiğine bakalım!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/sayisal-olmayan/readme.md

This file was deleted.

6 changes: 6 additions & 0 deletions veri-yapilari-algoritmalar/searching/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Searching
======

Arama algoritmaları belirttiğimiz özelliklerde verilerin elimizdeki veri topluluğundan bulunup getirilmesi demek. Bunun olabildiğince hızlı olması önemlidir. Günümüzde bilgisayarlar çokça veri barındırmaya başladı. Bizim bu verilerin içerisinde işlem yapacağımız verileri bulmamızın hızlı olması lazım.

Searching videolarını izleyerek searching'in detaylarına inip neler olduğunu öğrenelim!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/searching/readme.md

This file was deleted.

7 changes: 6 additions & 1 deletion veri-yapilari-algoritmalar/sorting/readme.md
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
#
Sorting Nedir ?
======

Elimizdeki eleman dizisini (array) nasıl sıralamak istiyorsak belirlediğimiz ölçüye göre sıralamak istiyoruz. Sorting, elimizdeki elaman dizisini (array) belirlediğimiz sıralama ölçütüne göre sıralamaya denir. (Algoritma, artan, azalan vs.)

Sorting'in yararları? Nerelerde kullanılır? Hadi öğrenelim!
13 changes: 13 additions & 0 deletions veri-yapilari-algoritmalar/soru-1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Soru1
======

Bir sorunu çözmek veya sonuca ulaşmak için tasarlanan adımlara ne denir?
* a) Array
* b) Algoritma (doğru)
* c) Linked List
* d) Recursion

Soru2
======

Problemi, aynı problemin daha küçüğü olarak ifade edip bu problemi adım adım küçültüp nerede durduğunu belirtilen yapıya ne denir?
9 changes: 8 additions & 1 deletion veri-yapilari-algoritmalar/stack/readme.md
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
#
Stack - LİFO (Last İn First Out)
======

Elimizdeki verileri tutmak için Array ve Linked List mantığına baktık. Stack ve Queue'yü Array ve Linked List kullanarak oluşturabiliriz.
* Push: Stack'e eleman eklemek.
* Pop: Stack'den eleman almak.

Stack'den bahsedeceğimiz videoya göz atalım!
7 changes: 7 additions & 0 deletions veri-yapilari-algoritmalar/time-complexity/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Time Complexity
======
Kullanacağımız alogirtmayı analiz etmek istiyoruz. Ama bu algoritma farklı inputlara göre farklı zaman senaryoları üretebiliyor bize. Analizimizi yapabileceğimiz:

* Worst Case,
* Average Case,
* Best Case, 3 ana başlık olarak video'da açıklanmıştır. İzleyelim!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/time-complexity/readme.md

This file was deleted.

15 changes: 15 additions & 0 deletions veri-yapilari-algoritmalar/veri-tutulma/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Verilerin Tutulması
======

Bilgisayar, içerisinde sınırlı bilgi barındırabilir. Fazla bilgi olduğunda hafızası doluyor diyebiliriz. Bilgisayar hafızasındaki bir kutucuğa biz 1 bit diyoruz. Her kutucuk 2 sembolü veya karakteri ifade eder. Bu kutucukları yan yana getirerek daha fazla ifadede bulunabiliyoruz. Her kutucuk 2x2'den 4 farklı sembolü ifade eder;

2 bit
0 0 , 0 1 , 1 0 , 1 1

Bu işlemleri sayısal olarak değil de bir sembol olarak görmeliyiz.

Bit sayısı arttıkça daha fazla sembol ifade edebiliyorsak her kutucuk 1 bit eder, her bit 2 sembol ifade eder, 3 kutucuk var ise 2^"kutucuk sayısı" işlemini yaparak 8 sembol ifade edebilmiş oluyoruz.

8 kutucuk yan yana getirdiğimizde ise buna 1 byte diyoruz. 2^8=256 sembol ifade eder. Bazı durumlarda sembol ifade ederken 1 byte yeterli olmayabilir. Bu durunlarda yan yana bytre ekleme işlemi yapıyoruz. Aslında yan yana kutucuk ekliyoruz, buna da integer diyoruz.

Bu tüm sembolleri, karakterleri de bir arada tutmak istiyoruz. Peki nasıl? Önümüzdeki derslerde görüşmek üzere!
1 change: 0 additions & 1 deletion veri-yapilari-algoritmalar/veri-tutulma/readme.md

This file was deleted.