هر توالی داده از همان نوع می تواند به عنوان یک لیست نمایش داده شود. لیست ها قابل سفارش و بدون ترتیب هستند. در حالت دوم ، کار با داده ها ، یافتن مقدار مورد نظر و دسترسی به عناصر لیست مشکلات خاصی را ایجاد می کند. لیست متغیرهای رشته ای معمولاً به ترتیب حروف الفبا مرتب می شوند. روش های مرتب سازی بسیاری وجود دارد ، در هر حالت شما باید بهینه ترین الگوریتم را انتخاب کنید.
دستورالعمل ها
مرحله 1
هنگام انتخاب بهترین روش مرتب سازی ، دو چیز باید در نظر گرفته شود: زمان لازم برای عملیات مرتب سازی و مقدار حافظه مورد نیاز برای ذخیره سازی کمکی. الگوریتم های مرتب سازی که به حافظه اضافی نیاز ندارند ، به انواع "درجا" گفته می شوند. مرتب سازی بر روی حباب آهسته ، یکی از ساده ترین آنهاست که بسته به ترتیب دلخواه ، هر جفت از موارد را اسکن کرده و مکان ها را عوض می کند.
گام 2
با یافتن حداقل یا حداکثر مورد در لیست ، یک روش مرتب سازی سریعتر وجود دارد. در صورت مرتب سازی بر اساس حروف الفبا ، هر بار که لیست را مرور می کنید ، باید حداکثر عنصر آن را پیدا کنید - این یک رشته است که با حرف نزدیک به ابتدای الفبا شروع می شود. پس از یافتن ، رشته با اولین مورد موجود در لیست در اولین گذرگاه عوض می شود. با بررسی بیشتر لیست ، مکان اول حذف می شود ، عنصر حداکثر بعدی جستجو می شود ، در مکان دوم قرار می گیرد و غیره کد برنامه مرتب سازی در C ++ با استفاده از روش یافتن حداکثر عنصر لیست: Strr Arr [20]، cTemp؛ int N = 20، Max، Pos؛ for (int i = 0؛ i <N- 1 ؛ من ++) {Max = Arr ؛ Pos = من ؛ for (int j = 0؛ j <N؛ j ++) {if (Arr [j] <Max) {Max = Arr [j]؛ Pos = j؛ } cTemp = Arr ؛ Arr = Arr [Pos] ؛ Arr [Pos] = cTemp؛ }}
مرحله 3
بهینه ترین راه حل برای سفارش داده های رشته ای در یک لیست ، نوع قرار دادن است. ماهیت آن در این واقعیت نهفته است که با هر بار عبور از لیست ، یک قسمت مرتب شده از لیست تعداد مشخصی از عناصر وجود دارد ، بنابراین عنصر بعدی در نظر گرفته شده در مکان مناسب لیست قرار می گیرد. کد C ++ الگوریتم مرتب سازی درج: Str Arr [20]، cTemp؛ int N = 20؛ for (int i = 1، j = 0؛ i <N؛ i ++) {cTemp = Arr ؛ j = من - 1 ؛ while (cTemp <Arr [j]) {Arr [j + 1] = Arr [j] ؛ j-- ؛ if (j <0) break؛ Arr [j + 1] = cTemp؛ }}