📘
Grokking-Algorithms book
PostgreSQL
  • Content
  • Introduction to Algorithms
    • Introduction
    • Binary Search
    • Big O notation
    • Recap
  • Selection sort
    • How memory works
    • Arrays and linked lists
    • Selection sort
    • Recap
  • Recursion
    • Recursion
    • Base case and recursive case
    • The stack
    • Recap
  • Quicksort
    • Divide & conquer
    • Quicksort
    • Big O notation revisited
    • Recap
  • Hash tables
    • Hash functions
    • Use cases
    • Collisions
    • Performance
    • Recap
  • Breadth-first search
    • Introduction to graph
    • What is a graph
    • Breadth-first search
    • Implementing the graph
    • Implementing the algorithm
    • Recap
  • Dijkstra's algorithm
    • Working with Dijkstra's algorithm
    • Terminology
    • Trading for a piano
    • Negative-weight edges
    • Implementation
    • Recap
  • Greedy Algorithms
    • The classroom scheduling problem
    • The knapsack problem
    • The set-covering problem
    • NP-complete problems
    • Traveling salesperson, step by step
    • Recap
  • Dynamic programming
    • The knapsack problem
    • Knapsack problem FAQ
    • Longest common substring
    • Recap
  • K-nearest neighbors
    • Classifying oranges vs. grapefruit
    • Building a recommendations system
    • Introduction to machine learning
    • Recap
  • Where to go next
    • Trees
    • Inverted indexes
    • The Fourier transform
    • Parallel algorithms
    • MapReduce
    • Bloom filters and HyperLogLog
    • The SHA algorithms
    • Locality-sensitive hashing
    • Diffie-Hellman key exchange
    • Linear programming
    • Epilogue
  • Answers to exercises
    • Chapter 1
    • Chapter 2
    • Chapter 3
    • Chapter 4
    • Chapter 5
    • Chapter 6
    • Chapter 7
    • Chapter 8
    • Chapter 9
    • Chapter 10
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub

Selection sort

  • Massivlar va bog'langan ro'yxatlar haqida ma'lumotga ega bo'lasiz -- ikkita eng asosiy ma'lumotlar tuzilmalari. Ular mutlaqo hamma joyda qo'llaniladi. Siz allaqachon 1-bobda massivlardan foydalangansiz va ularni ushbu kitobning deyarli har bir bobida ishlatasiz. Massivlar hal qiluvchi mavzu, shuning uchun e'tibor bering! Ammo ba'zida massiv o'rniga bog'langan ro'yxat(linked list) ni ishlatish yaxshiroqdir. Ushbu bobda ikkalasining ham ijobiy va salbiy tomonlari tushuntiriladi, shunda siz qaysi biri sizning algoritmingizga mos kelishini hal qilishingiz mumkin.

  • Siz birinchi tartiblash algoritmini o'rganasiz. Ko'pgina algoritmlar faqat ma'lumotlaringiz tartiblangan bo'lsa ishlaydi. Ikkilik qidiruvni eslaysizmi(Binary search)? Ikkilik qidiruvni faqat elementlarning tartiblangan ro'yxatida ishlatishingiz mumkin. Ushbu bo'lim sizga tanlashni o'rgatadi. Ko'pgina tillarda tartiblash algoritmi o'rnatilgan, shuning uchun siz kamdan-kam hollarda noldan o'z versiyangizni yozishingiz kerak bo'ladi. Ammo saralash tez saralash uchun qadamdir(Quick sort), men keyingi bobda bu haqda gapirib beraman. Quicksort - bu muhim algoritm va agar siz allaqachon bitta tartiblash algoritmini bilsangiz, tushunish osonroq bo'ladi.

Nimani bilishingiz kerak

Ushbu bobda ishlash tahlili bitlarini tushunish uchun Big O notatsiyasi va logarifmlarini bilishingiz kerak. Agar siz ularni bilmasangiz, 1-bobni o'qib chiqishingizni maslahat beraman. Kitobning qolgan qismida Big O belgisi qo'llaniladi.

PreviousRecapNextHow memory works

Last updated 1 year ago

Was this helpful?

Page cover image