Ads Home1

C# Program - Metode Pengurutan Shell Sort

http://www.xcodeplus.net/2018/01/csharp-shell-sort.html


Kode Program Shell Sort

Sebelumnya kita telah membahas mengenai Insertion Sort, pada postingan kali ini saya akan memberikan source code program implementasi pengurutan dengan metode Shell Sort. Metode Shell sort ini ditemukan oleh Donald Shell.

Metode Shell sort bekerja dengan cara membandingkan elemen-elemen dengan jarak tertentu. Algoritma shell sort melakukan perulangan di sepanjang larik dan jarak pembandingnya semakin berkurang saat algoritma mengarah ke akhir proses.

Berikut di bawah ini kode program yang akan mengimplementasikan metode pengurutan Shell Sort:

/************************************
 * Author Name : Muhammad Hari      *
 * Author URI  : www.xcodeplus.net  *
 ************************************/

using System;
using System.Collections;

namespace ConsoleApplicationShellSort
{
    class Program
    {
        static ArrayList arr;
        static int numElements, h;

        public static void ShellSort()
        {
            
            h = (int)numElements / 2;
            while (h > 0)
            {
                
                for (int i = 0; i < numElements - h; i++)
                {
                   
                    int j = i + h;
                   
                    if (Convert.ToInt16(arr[i]) >
                        Convert.ToInt16(arr[j]))
                    {
                       
                        int temp = Convert.ToInt16(arr[i]);
                        arr[i] = (int)arr[j];
                        arr[j] = temp;
                    }
                }
                DisplayElements();
                
                h = (int)h / 2;
            }
        }

     
        private static void DisplayElements()
        {
            Console.Write(" h : " + h + " --> ");
            for (int i = 0; i < numElements; i++)
            {
                Console.Write(" " + arr[i] + " ");
            }
            Console.WriteLine();
        }


        static void Main(string[] args)
        {
            Console.Write
            ("Berapa elemen array yang akan diurutkan ?  ");
            numElements = int.Parse(Console.ReadLine());
            arr = new ArrayList(numElements);
           
            Random mRandom = new Random(100);
          
            for (int i = 0; i < numElements; i++)
                arr.Add((int)(mRandom.NextDouble() * 100));

            Console.WriteLine("\nBilangan awal : ");

            DisplayElements();

            Console.WriteLine();
            
            ShellSort();

            Console.WriteLine("\nBilangan terurut : \n");

            DisplayElements();

            Console.ReadLine();
        }
    }
}

Berapa elemen array yang akan diurutkan ?  12

Bilangan awal :
 h : 0 -->  96  15  66  90  35  94  71  61  34  14  96  53

 h : 6 -->  71  15  34  14  35  53  96  61  66  90  96  94
 h : 3 -->  14  15  34  71  35  53  90  61  66  96  96  94
 h : 1 -->  14  15  34  35  53  71  61  66  90  96  94  96

Bilangan terurut :

 h : 0 -->  14  15  34  35  53  71  61  66  90  96  94  96


Catatan:
Untuk pembahasan mengenai konsep dari pengurutan Shell Sort saya akan membahasnya pada postingan yang terpisah, karena akan sangat kompleks jika dilakukan bersamaan. So, jangan segan untuk kembali lagi kesini karna saya akan selalu memperbarui postingan saya setiap harinya.

Anda juga dapat mengimplementasikan kode program di atas di bahasa pemrograman lainnya seperti C++ dan Java yang memang pada dasarnya untuk penulisan syntaksnya tidaklah berbeda dengan bahasa pemrograman C# Anda hanya perlu merubah beberapa bagian seperti perintah input/output, implementasi class, implementasi penggunaan ArrayList dan sebagainya.




C# (dibaca: C Sharp) merupakan bahasa pemrograman generasi baru yang mewah, kaya akan fitur, dan dapat digunakan untuk membuat beraneka raga program/aplikasi di berbagai bidang. C# mendukung beberapa paradigma pemrograman: imperatif, deklaratif, fungsional, serta pemrograman berorientasi objek. C# termasuk dalam keluarga C, dan fitur-fiturnya banyak diadopsi dari Java dan C++. C# menggunakan pustaka (library) yang terdapat dalam .NET Framework, kelengkapan di dalam pustaka .NET Framework menjadikan proses pengembangan program/aplikasi menggunakan C# relatif lebih mudah dan cepat jika dibandingkan dengan C++ dan Java.


No comments:

Kami menerima masukan dari anda jika memang ada pembahasan yang keliru dan kami sangat senang jika anda dapat berkontribusi untuk menyempurnakan postingan kami. Anda dapat mengirimkan email ke : hari18.muhammad@gmail.com

Jika postingan ini bermanfaat jangan lupa share postingan ini. Kami sangat merekomendasikan untuk anda yang membutuhkan informasi tentang computer stuff silakan subscribe blog kami dapatkan informasi terupdate dari kami secara gratiss. Terimakasih!

Powered by Blogger.