أين يمكنني أن أجد الوقت والمكان تعقيد المدمج في تسلسل الأنواع في بايثون
-
09-06-2019 - |
سؤال
لقد كنت غير قادر على العثور على مصدر هذه المعلومات ، قصيرة من يبحث من خلال بايثون البرمجية المصدر نفسي لتحديد كيفية عمل كائنات.لا أحد يعرف أين يمكن أن أجد هذا على الانترنت ؟
المحلول
الخروج 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 تدوين الوقت الكفاءة وليس الكثير من الذاكرة.