Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Sichere ProgrammierungRelease Notes for Safari Technology Preview 253(23.09.2026 um 23:46 Uhr)
Sichere ProgrammierungNode 20 is no longer available in GitHub Actions(23.09.2026 um 22:46 Uhr)
Sichere ProgrammierungMore ways to request and configure Copilot code reviews(23.09.2026 um 23:25 Uhr)
Sichere ProgrammierungApache Data Lakehouse Weekly: September 15 to 23, 2026(23.09.2026 um 23:14 Uhr)
Sichere ProgrammierungObservatorio de gastos públicos(23.09.2026 um 23:15 Uhr)
Sichere ProgrammierungRelease Notes for Safari Technology Preview 253(23.09.2026 um 23:46 Uhr)
Sichere ProgrammierungNode 20 is no longer available in GitHub Actions(23.09.2026 um 22:46 Uhr)
Sichere ProgrammierungMore ways to request and configure Copilot code reviews(23.09.2026 um 23:25 Uhr)
Sichere ProgrammierungApache Data Lakehouse Weekly: September 15 to 23, 2026(23.09.2026 um 23:14 Uhr)
Sichere ProgrammierungObservatorio de gastos públicos(23.09.2026 um 23:15 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

CS50 - Week 3

Algoritm - bu muammoni hal qilish uchun aniq ketma-ketlikda berilgan ko'rsatmalar to'plami. Algoritmlar bir-biridan tezligi va qancha xotira egallashi bilan farq qiladi. Dasturlash jarayonida aksar algoritmlar ma'lumotlarni qidirish…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

Algoritm - bu muammoni hal qilish uchun aniq ketma-ketlikda berilgan ko'rsatmalar to'plami. Algoritmlar bir-biridan tezligi va qancha xotira egallashi bilan farq qiladi. Dasturlash jarayonida aksar algoritmlar ma'lumotlarni qidirish (searching) va tartiblashga (sorting) borib taqaladi. Keling, ma'lumotlarni qidirish algoritmlari bilan tanishamiz:





Bizga quyidagi massiv berilgan bo'lsin:




[20, 500, 10, 5, 100, 1, 50]






Massivni tasavvur qilishda uni quyidagi kabi yonma-yon turgan yettita qizil shkaf sifatida ko‘rish mumkin:



lockers



Ushbu massivdan 50 sonini topishimiz kerak. Kompyuter 50 sonini topish uchun har bir shkafni tekshirishi kerak. Ushbu jarayonni, ya’ni massiv ichida ma’lum bir raqamni, belgini yoki boshqa elementni izlashni "qidiruv" deb ataymiz.

Biz massivimizni algoritmga topshirib, algoritm orqali shkaflarni ochib, 50 raqami bor-yo‘qligini aniqlashni so‘rashimiz mumkin. Natijada, algoritm bizga “ha” yoki “yo‘q” (true yoki false) deb javob beradi.



lockers as algorithm



Quyidagi kabi ko‘rsatmalar yordamida algoritmni tuzishimiz mumkin:




Chapdan ongga har bir eshikni tekshirish:
Agar 50 soni bor bolsa:
Ha deb qaytaramiz (return true)
Yoq deb qaytaramiz (return false)






Yuqoridagi ko‘rsatmalar inson o‘qishi uchun mo‘ljallangan pseudokod bo‘lib, kompyuterga topshiriladigan buyruqlarning oddiyroq ko‘rinishidir.



Chiziqli qidiruv algoritmini quyidagi kod yordamida C tilida amalga oshirishimiz mumkin:




#include <cs50.h>
#include
<stdio.h>

int main(void)
{
// Butun sonlardan iborat massiv berilgan
int numbers[] = {20, 500, 10, 5, 100, 1, 50};

// Kiritilgan sonni massivdan qidiramiz
int n = get_int("Number: ");
for (int i = 0; i < 7; i++)
{
if (numbers[i] == n)
{
printf("Topildi\n");
return 0;
}
}
printf("Topilmadi\n");
return 1;
}






Bu yerda for sikli yordamida chiziqli qidiruv amalga oshirilmoqda.

return 0 - dastur muvaffaqiyatli tugaganini bildiradi va dasturdan chiqiladi.

return 1 - dasturda xatolik yuz berganligini bildiradi.






Binar qidiruv – bu 50 raqamini izlashda qo‘llaniladigan yana bir algoritm.

Agar massivdagi qiymatlar o'sish tartibida saralangan bo‘lsa, binar qidiruvning pseudokodini quyidagicha keltirishimiz mumkin:




Agar tekshiriladigan element qolmagan bolsa:
Yoq deb qaytaramiz (return false)
Agar massivning[orta elementi] 50 soniga teng bolsa:
Ha deb qaytaramiz (return true)
Agar massivning[orta elementi] > 50:
Massivning chap yarmidan qidiramiz
Agar massivning[orta elementi] < 50:
Massivning ong yarmidan qidiramiz












Big O notatsiyasi



Algoritmning ishlashiga ketadigan vaqtini tahlil qilish uchun Big O notatsiyasidan foydalaniladi. Quyidagi grafikni ko‘rib chiqamiz:



big o graphed



"Kiritiladigan ma'lumot hajmi"x o‘qi; "Yechim uchun vaqt"y o‘qi;

Algoritmning samaradorligi uning egri chizig‘ining shakliga qarab aniqlanadi:

O(n²) - eng yomon ishlash vaqti hisoblanadi.

O(log n) - eng tezkor ishlash vaqtidir.



Chiziqli qidiruv algoritmi ishlalishiga ketadigan vaqt - O(n), chunki eng yomon holatda n qadam talab qilinishi mumkin.

Binar qidiruv algoritmi ishlashiga ketadigan vaqt esa O(log n), chunki eng yomon holatda qadamlar soni tobora kamayib boradi.



Dasturchilarni qiziqtiradigan ikkita holat mavjud:




  • Eng yomon holat yoki yuqori chegarasi (upper bound).

  • Eng yaxshi holat yoki quyi chegarasi (lower bound).



Ω belgisi algoritmning eng yaxshi holatini (quyi chegarani) belgilash uchun ishlatiladi, masalan, Ω(n).



Θ belgisi esa yuqori va quyi chegaralar bir xil bo‘lgan holatni belgilaydi, ya’ni eng yaxshi va eng yomon ishlash vaqtining bir xil bo‘lishi.







Saralash algoritmlari (Sorting)



Saralash – bu tartiblanmagan qiymatlar ro‘yxatini tartiblangan holda o‘zgartirish jarayonidir.

Massiv tartiblangan holatda bo‘lsa, undan ma'lum bir elementni qidirish kompyuter uchun ancha yengil bo‘ladi. Masalan, binar qidiruv (binary search) tartiblangan massivda ishlaydi, ammo tartiblanmagan massivda ishlamaydi.



Saralash algoritmlarining ko‘plab turlari mavjud. Ulardan biri tanlash usuli (selection sort) ni ko'rib chiqamiz. Bizga quyidagicha massiv berilgan bo'lsin:



red lockers



Tanlash usuli algoritmining pseudokodi quyidagicha bo'ladi:




i = 0 dan n-1 gacha:
numbers[i] va numbers[n-1] orasidagi eng kichik sonni topamiz
Eng kichik sonni numbers[i] bilan almashtiramiz






Bosqichlar tahlili:




  • Birinchi marta massiv elementlari bo‘ylab yurish n - 1 qadam talab qiladi.

  • Ikkinchi marta esa n - 2 qadam talab qilinadi.

  • Ushbu mantiq davom ettirilsa, kerakli qadamlar quyidagicha ifodalanishi mumkin:




(n - 1) + (n - 2) + (n - 3) + ... + 1






Bu formulani soddalashtirish orqali quyidagini olamiz: n(n-1)/2 yoki O(n²).

Demak, tanlash usuli algoritmi eng yomon holatda O(n²) tartibida saralar ekan. Hatto barcha qiymatlar tartiblangan bo‘lsa ham, qadamlar soni o‘zgarmaydi, ya’ni eng yaxshi holat ham O(n²) tartibida ishlaydi.







Pufakchali saralash algoritmi (Bubble sort)



Pufakchali saralash — yana bir saralash algoritmi bo'lib, bunda elementlarni qayta-qayta joylarini almashtirib, kattaroq qiymatlarni oxiriga “ko‘taramiz”.



Pufakchali saralash algoritmining pseudokodi quyidagicha bo'ladi:




n1 marta takrorlaymiz:
0 dan n2 gacha har bir i uchun:
Agar numbers[i] va numbers[i+1] notogri tartibda bolsa:
Ularni joyini almashtiramiz
Agar almashtirishlar qolmagan bolsa:
Dasturdan chiqamiz






Massivni tartiblash davomida shuni bilamizki, uning ko‘proq qismi tartiblanib boradi, shuning uchun faqat hali tartiblanmagan juftliklarni tekshirishning o'zi kifoya qiladi.

Shuning uchun pufakchali saralash algoritmi eng yomon holatda massiv tartiblanmagan bo'lsa O(n²), eng yaxshi holatda massiv allaqachon tartiblangan bo‘lsa O(n) tartibida ishlaydi.



Saralash algoritmlari qanday holatda qanday ishlashini ushbu sahifada vizual ko'rishimiz mumkin.




Ushbu maqolada CS50x 2024 manbasidan foydalanilgan.


IR-PLAYBOOK-VULN-REMEDIATION
MEDIUM
SOC Incident Playbook: Vulnerability Remediation & Verification
1-Click Detection Engineering: Sigma & YARA Rules
SOC Ready
title: Detect Exploitation - CS50 - Week 3
id: 6197ef32-980a-4ded-96dd-470d27adfb26
status: experimental
description: Automatisch generierte SIEM-Erkennungsregel basierend auf CTI Intelligence
references:
  - https://tsecurity.de/
author: iShareStuff CTI Automated Detection Engine
date: 2026-09-23
logsource:
  category: network_connection
  product: any
detection:
  selection:
      CommandLine|contains:
        - 'exploit'
  condition: selection
falsepositives:
  - Legitime administrative Zugriffe oder Penetrationstests
level: high
tags:
  - attack.initial_access
rule CTI_Threat_Indicator {
    meta:
        author = "iShareStuff CTI Automated Detection Engine"
        date = "2026-09-23"
        description = "YARA Signature for "
    strings:
        $str = "CS50 - Week 3" ascii wide
    condition:
        any of them
}
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten CS50 - Week 3

Thematisch verwandte Begriffe: CS50, Week · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-82405 | Klever-Go Account takeover: `kleverUpdateAccountPermission` authorizes o…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel TTP ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick