PDA

View Full Version : جلوگیری از مقادیر تکراری در آرایه



haghft
دوشنبه 07 بهمن 1387, 11:05 صبح
چه جوری میشه از وارد شدن مقادیر تکراری در یه آرایه(به عنوان مثال []string)جلوگیری کرد؟منظورم اینکه هیچ مقداری در این آرایه تکراری نباشه.:متفکر:

Salar Ashgi
دوشنبه 07 بهمن 1387, 15:11 عصر
سلام ، میتونید هر بار که خانه های آرایه را مقداردهی می کنید ، آنرا در آرایه جستجو کرده و اگر بود آنرا

وارد نکنید ، و یا در آخر کار یعنی بعد اینکه آرایه بطور کامل مقداردهی شد ، اعضای تکراری را حذف کنید !!!

موفق و پیروز باشید !!!

haghft
دوشنبه 07 بهمن 1387, 17:56 عصر
این کار برای آرایه های بزرگ(با صد هزار عضو)بسیار وقتگیر است و گاهی برنامه قفل میشه.راه بهتری اگه به ذهنتون میرسه لطفا راهنماییمون کنین.در ضمن لطف کنید کدشم بنویسید.:چشمک:

Mehdi Asgari
دوشنبه 07 بهمن 1387, 18:15 عصر
از HashSet استفاده کن

در ضمن لطف کنید کدشم بنویسید
امر دیگه ؟ فروم برای کمک کردن به دیگرانه ، نه انجام تکالیفشون. خودت چیزی رو که گفتم سرچ کن

haghft
دوشنبه 07 بهمن 1387, 19:50 عصر
اینم شد راهنمایی؟ما که چیزی نفهمیدیم!!!:عصبانی:

Mehdi Asgari
دوشنبه 07 بهمن 1387, 20:26 عصر
قبل از یادگیری برنامه نویسی بهتره با گوگل آشنا بشی.
وقتی میگی یک مجموعه (آرایه ، لیست ، ...) ای از اشیا میخوای که تمام عناصرشون Unique بوده و عضو تکراری نداشته باشه ، داری دربارۀ Set (مجموعه) صحبت می کنی. در دات نت کلاسی به نام HashSet در System.Collections.Generic وجود داره که همین مفهوم رو پیاده سازی می کنه و در دات نت 3.5 اضافه شد.

Mahdi.Kiani
دوشنبه 07 بهمن 1387, 21:56 عصر
سلام
دوستان کمی آرامش خودتان را حفظ کنید. با ملایمت بیشتری به بحث بپردازید.
با تشکر

slashslash2009
دوشنبه 07 بهمن 1387, 22:53 عصر
اگر آرایت مرتب کرده باشی مثلا کوچیک به بزرگ یا هر جوری که میشه مرتب کرد با استفاده از روشهایی میشه خیلی سریع سرچ کرد و نزاری تکراری وارد بشه

newgoldenman
دوشنبه 07 بهمن 1387, 23:28 عصر
چه جوری میشه از وارد شدن مقادیر تکراری در یه آرایه(به عنوان مثال []string)جلوگیری کرد؟

سلام
يه چند تا نكته رو هم من بگم. البته با اجازه از اساتيد محترم.
يكي اينكه، شما فقط سوال پرسيدي، و هيچ مشخص نكردي كه حيطه ي كاري شما، يا مورد استفادتون، چي هست و از اين چيزي كه ميخواهيد ياد بگيريدش، چه مدلي و براي چه كاري نياز داريد و قصد داريد كه استفاده كنيد. اگر اينها رو معلوم كنيد، مسلماً دوستا هم ميتونن سريعتر به شما كمك كنند، و هم اينكه يا الگوريتم بهتر براي انجام كارتون، و هم اينكه شايد راه بهتري به شما معرفي كنند، تا اين راهي كه شما در پيش گرفته ايد.

از اين كه بگذريم،ميرسيم به سوال شما:
1: اگر تعدادتون كم هست، مثلاً 100 تا، يا حتي 500 تا، به همون صورت كه دوست عزيزمون فرمودند، عمل كنيد و روش خوبي هم هست.
اين منظورمه:

سلام ، میتونید هر بار که خانه های آرایه را مقداردهی می کنید ، آنرا در آرایه جستجو کرده و اگر بود آنرا

وارد نکنید ، و یا در آخر کار یعنی بعد اینکه آرایه بطور کامل مقداردهی شد ، اعضای تکراری را حذف کنید !!!

ولي شما پاسخ ايشون رو رد كرديد، به اين دليل:

این کار برای آرایه های بزرگ(با صد هزار عضو)بسیار وقتگیر است و گاهی برنامه قفل میشه.
آرايه هاي بزرگ؟ مثلاً چند تا؟ هزار تا؟ دو يا صد هزارتا ؟ يك ميليون؟ ... اگه منظورتون از اين ارقام و اين تعداد هست، به هر روش و الگوريتمي كه خودتون بخواهيد بگرديد دنبالش و بپرسيد و ... عمل كنيد، مسلماً پاسخگوي اين نياز شما در اين سطح گسترده نخواهد بود. و اين هم پاسخ من:
در اين حالت، چرا از Data Base استفاده نميكنيد؟ شما يك جدول بساز، يك كليد براش قرار بده، از نوع String . در نتيجه، شما يك ميليارد Data هم داشته باشي، يك ميليارد و يكمين رو كه ميخواهيد وارد كنيد، اينجا خود DBMS هست كه وارد عمل ميشه و با استفاده از الگوريتم ها و شيوه هاي "عالي و بهينه" ي خودش، اينكار رو براي شما انجام ميده...

موفق باشيد.