{"id":23243566,"url":"https://github.com/mohamedtalhaouii/dsa","last_synced_at":"2025-04-05T23:23:59.284Z","repository":{"id":264667782,"uuid":"893162335","full_name":"mohamedtalhaouii/DSA","owner":"mohamedtalhaouii","description":"Structure de Données \u0026 Algorithmes","archived":false,"fork":false,"pushed_at":"2025-01-14T10:00:16.000Z","size":25011,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-14T11:20:09.930Z","etag":null,"topics":["algorithms","data-structures"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mohamedtalhaouii.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"mohamedtalhaouii","patreon":"mohamedtalhaouii","buy_me_a_coffee":"mohamedtalhaoui"}},"created_at":"2024-11-23T17:40:52.000Z","updated_at":"2025-01-14T10:00:20.000Z","dependencies_parsed_at":"2025-01-14T11:20:16.897Z","dependency_job_id":"f4052555-532c-4de6-bc19-21543160b6dd","html_url":"https://github.com/mohamedtalhaouii/DSA","commit_stats":null,"previous_names":["mohamedtalhaouii/dsa"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedtalhaouii%2FDSA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedtalhaouii%2FDSA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedtalhaouii%2FDSA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedtalhaouii%2FDSA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mohamedtalhaouii","download_url":"https://codeload.github.com/mohamedtalhaouii/DSA/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238420710,"owners_count":19469379,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","data-structures"],"created_at":"2024-12-19T06:17:21.616Z","updated_at":"2025-02-12T05:37:54.642Z","avatar_url":"https://github.com/mohamedtalhaouii.png","language":"C","funding_links":["https://github.com/sponsors/mohamedtalhaouii","https://patreon.com/mohamedtalhaouii","https://buymeacoffee.com/mohamedtalhaoui"],"categories":[],"sub_categories":[],"readme":"# **Plan du Contenu**\n### **1- Algorithmes**\n\n- **[Algorithmes de Tri :](#algorithmes-de-tri-)**\n\n  - **[Tri par Sélection (Selection Sort)](#1-tri-par-sélection-selection-sort)**\n  - **[Tri par Insertion (Insertion Sort)](#2-tri-par-insertion-insertion-sort)**\n  - **[Tri à Bulles (Bubble Sort)](#3-tri-à-bulles-bubble-sort)**\n  - **[Tri Fusion (Merge Sort)](#4-tri-fusion-merge-sort)**\n  - **[Tri Rapide (Quick Sort)](#5-tri-rapide-quick-sort)**\n  - **[Tri par Tas (Heap Sort)](#6-tri-par-tas-heap-sort)**\n\n- **[Algorithmes de Recherche :](#algorithmes-de-recherche-)**\n\n  - **[Recherche Séquentielle (Linear Search)](#1-recherche-séquentielle-linear-search)**\n  - **[Recherche Dichotomique (Binary Search)](#2-recherche-dichotomique-binary-search)**\n\n- **[Complexité :](#complexité-)**\n\n  - **[Notation Big O](#notation-big-o)**\n  - **[Complexité Temporelle](#complexité-temporelle-)**\n  - **[Complexité Spatiale](#complexité-spatiale-)**\n  - **[Analyse de la Complexité](#analyse-de-la-complexité-)**\n  - **[Importance de la Complexité](#importance-de-la-complexité-)**\n  - **[Techniques pour Réduire la Complexité](#techniques-pour-réduire-la-complexité-)**\n\n---\n\n### **2- Structures de Données**\n\n---\n\n### **3- Navigation Rapide**\n- [Algorithmes](#algorithmes)  \n- [Structures de Données](#structures-de-données)  \n\n---\n\n# **1- Algorithmes :**\n\n## **Algorithmes de Tri :**\n### **[🔝 Retour à l'index](#plan-du-contenu)**\n\n![SortingAlgorithms](https://github.com/user-attachments/assets/fcc85d4a-6b51-47ab-af19-55aa6e5acdc4)\n\nCliquez sur les liens pour explorer les implémentations de chaque algorithme dans le dossier GitHub.\n\n### 1. **[Tri par Sélection (Selection Sort)](https://github.com/mohamedtalhaouii/DSA/tree/60a1abcb85d3f3789b55baffd68a37738609b97c/Algorithmes/Tri%20(Sort)/1-%20Selection)**  \n   - Complexité : **O(n²)** (tous les cas).  \n   - Trouve le plus petit élément et le place au début.  \n\n### 2. **[Tri par Insertion (Insertion Sort)](https://github.com/mohamedtalhaouii/DSA/tree/main/Algorithmes/Tri%20(Sort)/2-%20insertion)**\n\n   - Complexité : **O(n²)** (cas moyen et pire), **O(n)** (meilleur cas).  \n   - Insère chaque élément à sa place dans une liste triée.  \n\n\n### 3. **[Tri à Bulles (Bubble Sort)](https://github.com/mohamedtalhaouii/DSA/tree/main/Algorithmes/Tri%20(Sort)/3-%20Bulles)**  \n   - Complexité : **O(n²)** (cas moyen et pire), **O(n)** (meilleur cas).  \n   - Compare et échange des éléments adjacents.\n\n### 4. **[Tri Fusion (Merge Sort)](https://github.com/mohamedtalhaouii/DSA/tree/main/Algorithmes/Tri%20(Sort)/4-%20Fusion)**  \n   - Complexité : **O(n log n)** (tous les cas).  \n   - Divise et fusionne les sous-listes triées.  \n\n### 5. **[Tri Rapide (Quick Sort)](https://github.com/mohamedtalhaouii/DSA/tree/main/Algorithmes/Tri%20(Sort)/5-%20Rapide)**  \n\n   - Complexité : **O(n log n)** (cas moyen), **O(n²)** (pire cas).  \n   - Divise la liste en sous-listes autour d’un pivot.  \n\n\n### 6. **[Tri Par Tas (Heap Sort)](https://github.com/mohamedtalhaouii/DSA/tree/main/Algorithmes/Tri%20(Sort)/6-%20Tas)**  \n   - Complexité : **O(n log n)** (tous les cas).  \n   - Utilise une structure en tas pour trier.  \n\n\n# **Algorithmes de Recherche :**\n### **[🔝 Retour à l'index](#plan-du-contenu)**\n\n![SearchAlgorithms](https://github.com/user-attachments/assets/ee6619a3-ffc8-4515-9356-a13c5b89670b)\n\nCliquez sur les liens pour accéder aux algorithmes de recherche sur GitHub.  \n\n### 1. **[Recherche Séquentielle (Linear Search)](https://github.com/mohamedtalhaouii/DSA/tree/main/Algorithmes/Recherche%20(Search)/Dichotomique)**  \n   - Complexité : **O(n)**.  \n   - Parcourt chaque élément jusqu’à trouver l’élément recherché.  \n\n### 2. **[Recherche Dichotomique (Binary Search)](https://github.com/mohamedtalhaouii/DSA/tree/main/Algorithmes/Recherche%20(Search)/S%C3%A9quentielle)**  \n   - Complexité : **O(log n)** (liste triée).  \n   - Divise la liste triée en deux moitiés pour localiser l’élément.\n\n\n## **Naviguer par Catégorie**\n- **[Dossier des Algorithmes de Tri](https://github.com/mohamedtalhaouii/DSA/tree/main/Algorithmes/Tri%20(Sort))**\n- **[Dossier des Algorithmes de Recherche](https://github.com/mohamedtalhaouii/DSA/tree/main/Algorithmes/Recherche%20(Search))**\n\n\n# **Complexité :**\n### **[🔝 Retour à l'index](#plan-du-contenu)**\n\n![Big O](https://github.com/user-attachments/assets/57769ee1-5e07-4060-adbd-2a8a26838fab)\n\n## Notation Big O\n- **Définition :** Décrit la borne supérieure du temps d'exécution d'un algorithme. Elle donne le pire des cas de la manière dont le temps d'exécution augmente avec la taille de l'entrée.\n- **Classes courantes :** \n  -  $`O(1)`$ : Temps constant. \n  -  $`O(\\log n)`$ : Temps logarithmique. \n  -  $`O(n)`$ : Temps linéaire. \n  -  $`O(n \\log n)`$ : Temps linéarithmique. \n  -  $`O(n^2)`$ : Temps quadratique. \n  -  $`O(2^n)`$ : Temps exponentiel. \n  -  $`O(n!)`$ : Temps factoriel. \n\n\n## Complexité temporelle :\n- **Définition :** Mesure la quantité de temps qu'un algorithme prend pour s'exécuter en fonction de la longueur de l'entrée. \n- **Classes courantes :** \n    -  **P :** Problèmes résolubles en temps polynomial. \n    -  **NP :** Problèmes pour lesquels une solution donnée peut être vérifiée en temps polynomial. \n    -  **NP-difficile :** Problèmes aussi difficiles que les problèmes les plus difficiles de NP ; pas nécessairement dans NP. \n    -  **NP-complet :** Problèmes de NP qui sont NP-difficiles. \n\n## Complexité spatiale :\n- **Définition :** Mesure la quantité de mémoire qu'un algorithme utilise en fonction de la longueur de l'entrée. \n- **Classes courantes :** \n    -  **PSPACE :** Problèmes résolubles en utilisant une quantité polynomiale d'espace. \n    -  **L :** Problèmes résolubles en espace logarithmique. \n    -  **NL :** Problèmes résolubles en espace logarithmique non déterministe. \n\n## Analyse de la Complexité :\n- **Cas moyen** : Représente la complexité dans la plupart des situations. \n- **Pire cas** : La complexité la plus élevée, souvent analysée avec la notation $`Big-O`$. \n- **Meilleur cas** : La complexité minimale, mais rarement utilisée pour évaluer les performances globales. \n\n### Importance de la Complexité :\n- **Optimisation** : La complexité aide à choisir l'algorithme le plus performant pour un problème donné, en fonction des ressources disponibles (temps et mémoire). \n- **Scalabilité** : Une bonne analyse de la complexité permet de savoir si un algorithme peut gérer de grandes tailles d'entrées de manière efficace. \n\n### Techniques pour Réduire la Complexité :\n- **Diviser pour régner** : Diviser un problème en sous-problèmes plus petits, comme dans les algorithmes de tri (ex. tri rapide, tri fusion). \n- **Approximations** : Pour les problèmes NP-complets, utiliser des algorithmes d'approximation ou des heuristiques. \n- **Mémoïsation et programmation dynamique** : Stocker les résultats intermédiaires pour éviter les calculs redondants.\n\n---\n\n# **Structures de Données**\n### **[🔝 Retour à l'index](#plan-du-contenu)**\n*(soon as possible...)*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedtalhaouii%2Fdsa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohamedtalhaouii%2Fdsa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedtalhaouii%2Fdsa/lists"}