Le processus de développement d'application nécessite que les données soient représentées de manière efficiente, et que soit conçu (ou mis sur pied) un ensemble d'étapes pour effectuer une tâche donnée. Cet ensemble d'étapes pourra par la suite être utilisé pour implémenter un programme. Pour se faire, il est nécessaire de comprendre les structures de données (pour représenter les données de manière efficiente) et les algorithmes (pour concevoir une solution à un problème donné).
Structures de données
Les structures de données sont des moyens de représenter des données pour qu'elles soient mieux organisées et facilement manipulables par un programme. Par exemple, les structures de données comme les tableaux (arrays en anglais), les arbres (trees en anglais), les listes chainées (linked lists en anglais), pour ne citer que ces trois là, sont différents moyens de représenter les données. Les tableaux représentent la structure de données la plus simple dans laquelle les données sont organisées de façon linéaire dans des emplacements mémoire contigus ou consécutifs. Tout comme les tableaux, les listes chainées sont également des structures de données linéaires ; mais elles ne stockent pas les données dans des emplacements mémoire contigus. Les arbres quant à eux sont des structures de données non linéaires qui représentent les données de façon hiérarchique.
Remarque : Apprendre plusieurs structures de données est très important, car le choix d'une structure de données peut grandement affecter l'efficacité d'un programme. D'où la nécessité de choisir la structure de données la mieux adaptée pour un problème donné.
Algorithmes
Un algorithme est une procédure constitué d'un ensemble d'étapes bien définies pour exécuter une tâche donnée. Un algorithme spécifie donc des instructions, étapes par étapes, pour résoudre un problème donné ou effectuer une tâche particulière.
Comme vous pouvez le remarquer, les algorithmes et les structures de données sont étroitement liés. En effet, lorsque nous implémentons un algorithme, il nous faut choisir une représentation de données, qui spécifie la structure de données à utiliser. De même, pour utiliser des structures de données, nous avons besoin de développer des algorithmes efficaces pour effectuer diverses opérations sur ces strucures de données, comme la recherche, le tri, l'insertion, etc.