Basic Overview of DSA

  • Arrays: Linear data structure with a fixed size, allowing random access to elements.

    • Best for: Static datasets with frequent element access.
    • Complexity:
      • Access: O(1)
      • Search: O(n)
      • Insertion/Deletion: O(n) Array
  • Linked Lists: Linear structure of nodes, where each node points to the next.

    • Types: Singly, Doubly, Circular.
    • Best for: Dynamic datasets with frequent insertions/deletions.
    • Complexity:
      • Access/Search: O(n)
      • Insertion/Deletion: O(1) (at head/tail with pointer)
  • Hash Maps (or Hash Tables): Key-value pair storage with a hash function.

Read more

Array

1. Sorting Algorithms

Sorting arranges elements in a specific order (ascending or descending).

  • Bubble Sort – Repeatedly swaps adjacent elements if they are in the wrong order.
  • Selection Sort – Selects the smallest/largest element and places it in order.
  • Insertion Sort – Builds the sorted array one element at a time.
  • Merge Sort – Uses the divide-and-conquer technique to sort.
  • Quick Sort – Selects a pivot and partitions elements around it.
  • Heap Sort – Uses a binary heap to sort efficiently.
  • Radix Sort – Sorts numbers digit by digit.
  • Counting Sort – Counts occurrences of elements (used for small range values).
  • Sorting

2. Searching Algorithms

Used to find an element in an array.

Read more

Searching

  • Approach: Sequentially checks each element in the array.
  • Time Complexity:
    • Best: O(1)
    • Worst: O(n)
    • Average: O(n)
  • Space Complexity: O(1)

2. Binary Search (For Sorted Arrays Only)

  • Approach: Repeatedly divides the array in half and searches in the relevant half.
  • Time Complexity:
    • Best: O(1)
    • Worst: O(log n)
    • Average: O(log n)
  • Space Complexity:
    • O(1) (Iterative)
    • O(log n) (Recursive, due to function call stack)

3. Jump Search (For Sorted Arrays)

  • Approach: Jumps ahead by a block size (√n) and does a linear search within that block.
  • Time Complexity:
    • Best: O(1)
    • Worst: O(√n)
    • Average: O(√n)
  • Space Complexity: O(1)

4. Interpolation Search (For Uniformly Distributed Sorted Data)

Approach: Uses the formula to estimate the probable position of the target. $$ pos=left+ \frac {(target−arr[left])×(right−left)}{(arr[right]−arr[left])}​ $$

Read more

Sorting

Sort

1. Comparison-Based Sorting

These algorithms compare elements to determine their order.

a. Bubble Sort

  • Repeatedly swaps adjacent elements if they are in the wrong order.
  • Time Complexity: O(n²)
  • Space Complexity: O(1)

b. Selection Sort

  • Finds the smallest element and places it in the correct position.
  • Time Complexity: O(n²)
  • Space Complexity: O(1)

c. Insertion Sort

  • Picks one element at a time and places it in its correct position.
  • Time Complexity: O(n²)
  • Space Complexity: O(1)
  • Efficient for small or nearly sorted data.

d. Merge Sort (Divide and Conquer)

  • Divides the array into halves, sorts them, and merges them.
  • Time Complexity: O(n log n)
  • Space Complexity: O(n)

e. Quick Sort (Divide and Conquer)

  • Picks a pivot, partitions the array, and sorts recursively.
  • Time Complexity: O(n log n) (Best & Avg), O(n²) (Worst)
  • Space Complexity: O(log n) (due to recursion)

f. Heap Sort

  • Converts the array into a heap and extracts elements in order.
  • Time Complexity: O(n log n)
  • Space Complexity: O(1)

g. Shell Sort

  • Variation of insertion sort that sorts elements at a gap.
  • Time Complexity: O(n log n) (Best), O(n²) (Worst)
  • Space Complexity: O(1)

2. Non-Comparison-Based Sorting

These algorithms do not compare elements directly.

Read more

My Road map for cyber security

Month 1-3: Foundations

Networking Fundamentals

  • Learn TCP/IP, OSI model, and common protocols
  • Study network topologies and architecture
  • Practice with tools like Wireshark for packet analysis

Linux Essentials

  • Install a Linux distribution (e.g., Ubuntu or Kali Linux)
  • Master basic command-line operations
  • Learn file system structure and permissions

Programming Basics

  • Start with Python for cybersecurity
  • Learn basic scripting for automation
  • Practice with simple security-related coding projects

Month 4-6: Core Security Concepts

Information Security Principles

  • Study CIA triad (Confidentiality, Integrity, Availability)
  • Learn about access control models and authentication methods
  • Understand basic cryptography concepts

Web Application Security

  • Learn common web vulnerabilities (e.g., OWASP Top 10)
  • Practice identifying and exploiting basic web app flaws
  • Study secure coding practices

Network Security

  • Understand firewalls, IDS/IPS, and VPNs
  • Learn about common network attacks and defenses
  • Practice configuring basic network security tools

Month 7-9: Specialization and Practical Skills

Ethical Hacking Basics

  • Study penetration testing methodologies
  • Learn about reconnaissance and scanning techniques
  • Practice with vulnerable virtual machines (e.g., DVWA, Metasploitable)

Incident Response and Forensics

  • Understand the incident response lifecycle
  • Learn basic digital forensics techniques
  • Practice with forensic tools like Autopsy or EnCase

Cloud Security

  • Study cloud service models (IaaS, PaaS, SaaS)
  • Learn about shared responsibility models
  • Practice securing cloud environments (e.g., AWS, Azure)

Month 10-12: Advanced Topics and Career Preparation

Threat Intelligence

  • Learn about threat actors and their motivations
  • Study threat intelligence platforms and feeds
  • Practice creating threat intelligence reports

Governance, Risk, and Compliance

  • Understand common security frameworks (e.g., NIST, ISO 27001)
  • Learn about risk assessment methodologies
  • Study relevant regulations (e.g., GDPR, HIPAA)

Career Development

  • Build a professional network (join cybersecurity communities, attend webinars)
  • Create a portfolio of projects and write-ups
  • Prepare for entry-level cybersecurity certifications (e.g., CompTIA Security+)

Throughout the year:

Read more

Network

What is computer networking?

Networking, or computer networking, is the process of connecting two or more computing devices, such as desktop computers, mobile devices, routers or applications, to enable the transmission and exchange of information and resources.

Networked devices rely on communications protocols—rules that describe how to transmit or exchange data across a network—to share information over physical or wireless connections.

Key networking components and devices

Before we delve into more complex networking topics, it’s important to understand fundamental networking components, including:

Read more

Cyber Security

Hi guys lets Start our cyber security journey is From today

In this Journey we are going to learn about the fundamentals of cyber security

  • Programming for Cybersecurity
  • Cybersecurity Basics
  • Networking Fundamentals
  • Operating Systems Security
  • Cryptography
  • Penetration Testing

I am thing of starting form c and c++ as they are low level languages and help me with my college also and in cyberspace also.

I am thing of complete the basic in 12 Months so that i can get some internship and grow my self.

Lets start this Journey of mine form 1 Jan 2025 This is my new Year Resolution that I will Cyber Security internship by the end of this year.

I am think of Posting my work weekly here as i know no body is reading this this but it helps me feel motivated to do the work

Thanks

Read more

My First blog

This is my First blog to help me log my life throughout my college life

So lets being

fuck you

Read more