أين يمكنني أن أجد الوقت والمكان تعقيد المدمج في تسلسل الأنواع في بايثون

StackOverflow https://stackoverflow.com/questions/45228

سؤال

لقد كنت غير قادر على العثور على مصدر هذه المعلومات ، قصيرة من يبحث من خلال بايثون البرمجية المصدر نفسي لتحديد كيفية عمل كائنات.لا أحد يعرف أين يمكن أن أجد هذا على الانترنت ؟

هل كانت مفيدة؟

المحلول

الخروج TimeComplexity صفحة على py نقطة org wiki.وهو يغطي مجموعة/dicts/قوائم/الخ على الأقل بقدر تعقيد الوقت يذهب.

نصائح أخرى

ريموند ديHettinger لا ممتازة الحديث (الشرائح) عن بايثون المدمج في مجموعات تسمى 'الأساسية الثعبان حاويات - تحت غطاء محرك السيارة.الإصدار رأيت تركز أساسا على set و dict, ولكن list كانت مغطاة أيضا.

هناك أيضا بعض الصور ذات الصلة الشرائح من EuroPython في بلوق.

هنا هو ملخص من ملاحظاتي على list:

  • متجر البنود مجموعة من المؤشرات.منخفض التكاليف O(1) مرة.إلحاق التكاليف المطفأة O(1) مرة.إدراج تكاليف O(n) مرة.
  • يحاول تجنب memcpy عندما تنمو فوق تخصيص.العديد من قوائم صغيرة سوف تضيع الكثير من الفضاء ، ولكن القوائم الكبيرة لم تضيع أكثر من 12.5% إلى overallocation.
  • بعض العمليات مسبقا حجم.الأمثلة كانت range(n), map(), list(), [None] * n, و تشريح.
  • عندما تتقلص ، الصفيف reallocإد فقط عندما يتم إضاعة 50% من المساحة. pop رخيص.

إذا كان لديك سؤال ما أعتقد الطلب الخاص بك ، يمكنك العثور عليها هنا...صفحة 476 و على.

مكتوب حول تقنيات التحسين الثعبان;انها في معظمها Big-O تدوين الوقت الكفاءة وليس الكثير من الذاكرة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top