עבור לתוכן

הגדלת הSTACK בvisual c 2005

Featured Replies

פורסם

גישה מעניינת. מעין גישת cellular automata לאותה בעיה.

מה שמעניין במיוחד זה ששתי הגישות (סריקת raster לזיהוי אוביקטים והגישה של omniscience) בסופו של דבר עוברות כנראה בצורה דומה על המטריצה ומביאות לאותה תוצאה.

למרות הכל נראה לי שמעבר ישיר על המטריצה יהיה יותר מהיר.

פורסם

סתם, כל מני שטויות (שימוש במבנה נתונים אחר, שינוי סדר פעולות וכו'), אבל בסוף נראה לי שהמימוש שלי לא יעיל במטריצות גדולות (השאלה אם זה נובע מהמימוש הבסיסי של הרעיון, או מהמימוש בפועל בשפה שבחרתי ומגבלות של מבני הנתונים הבסיסים שלה).

פורסם

לדעתי הגישה לא מתאימה לבעיה פשוטה כזו. אתה מתייחס לכל תא כאוביקט פעיל, שעושה את העבודה. ב-connected component analysis מתייחסים לתאים כסתם חתיכות נתונים במטריצה.

במקום לולאה פשוטה שעוברת על כמות קטנה יחסית של נתונים, יש לך לולאה מסובכת יותר שעוברת על כמות גדולה של נתונים.

לדוגמא: נניח שאתה עובד ב-C++ והגדרת מטריצה של אובייקטים, וגודל כל אובייקט הוא 20 בתים (מערך, vptr, ועוד שטויות). כבר צריך לעבור על יותר זכרון בשביל לעשות את העבודה. וזה לא כולל את שאר התקורות (אתחולים והקצאות).

עכשיו ניקח את הגרסה הישירה יותר: יש מטריצה של תאים, כאשר כל תא הוא בדיוק בית (ואפשר לצמצם כך שכל תא הוא ביט). צריך לעבור על הרבה פחות זכרון. זה כבר חוסך המון.

הערה: בתור שעשוע, אפשר לתכנן את האוביקטים כך שעדיין זה יראה כאילו כל תא הוא אובייקט, אבל ללא העלות הנוספת. כנראה ע"י flyweight או משהו דומה. זה קצת אידיוטי במקרה זה אבל כתרגיל זה נחמד.

פורסם
  • מחבר

המטריצה שאני הולך לעבוד עליה היא קטנה בקצת מהמטריצות שהרצת שם.

בסופו של דבר, כל האלגוריתמים דיי דומים אחד לשני. השימוש בFLYWEIGHT דומה(בערך) לשמירת הPARENT שהוצג באולגוריתם שנמצא בדף הקודם.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים