ما ساختمانهای داده را مطالعه میکنیم تا بتوانیم یاد بگیریم که برنامههای کارآمدتری بنویسیم. ولی چرا با این که هر ساله کامپیوترهای جدید سریعتر میشوند برنامهها باید کارآمد باشند؟ دلیلش این است که جاه طلبیها ما نیز به همراه تواناییهای ما رشد میکنند. به جای اینکه ارائه راندمان بالا منسوخ شود، انقلاب مدرن در توان محاسباتی و قابلیتهای ذخیره سازی صرفا بهره وری را افزایش میدهند همان طور که ما تلاش به انجام کارهای پیچیدهتر میکنیم.
برای افزایش راندمان برنامه نیازی نیست و نباید با طراحی صحیح و کدنویسی واضح تداخلی داشته باشد. نوشتن برنامه هایی با راندمان بالا سر و کار کمی با با ترفندهای برنامه نویسی دارد اما نسبتا بر اساس سازمان دهی مناسب اطلاعات و الگوریتم هاست. برنامه نویسی که بر روی اصول پایه ای طراحی واضح تسلط پیدا نکرده است، به احتمال زیاد قادر به نوشتن برنامه هایی با راندمان بالا نیست. بر عکس نگرانیهای مربوط به هزینههای توسعه و نگهداری نباید به عنوان بهانه ای برای توجیه کارایی پایین برنامه باشد. عمومیت طراحی باید بدون فدا کردن کارایی قابل دستیابی باشد، ولی این تنها در صورتی امکان پذیر است که طراح بداند که کارایی را چگونه اندازه بگیرد و آن را به عنوان جزئی جدا نشدنی از فرآیند طراحی و پیاده سازی کند. بیشتربرنامههای درسی علوم کامپیوتر تصدیق کرده اند که مهارتهای خوب برنامه نویسی با تاکید زیادی بر اصول بنیادین مهندسی نرم افزار آغاز میشود. پس از آن وقتی که یک برنامه نویس اصول طراحی روشن و پیاده سازی برنامه را یاد گرفت، قدم بعدیش مطالعه تاثیر سازمان دهی داده و الگوریتمها بر روی راندمان برنامه است.
کتاب تحلیل ساختمانهای داده و الگوریتمها در سی پلاس پلاس؛ راهنمایی جامع با تمرکز بر روی ایجاد ساختمانهای داده و الگوریتمهای با راندمان بالا است. این کتاب چگونگی انتخاب و یا طراحی مناسبترین ساختمان داده برای یک مسئله را بیان کرده است. در این کتاب از ++C به عنوان زبان برنامه نویسی استفاده شده است.