کریستین سافت

آموزش برنامه نویسی و سورس سی شارپ , اندروید

کریستین سافت

آموزش برنامه نویسی و سورس سی شارپ , اندروید

۲ مطلب با کلمه‌ی کلیدی «الگوریتم» ثبت شده است

۰۴
آذر
۹۶

یکی از انواع مرتب سازی ، مرتب سازی سریع یا QuickSort می باشد . در سورس کد زیر شما را با این نوع مرتب سازی آشنا می کنیم .


تصویر زیر نشان دهنده روش کار الگوریتم مرتب سازی در سی شارپ می باشد :



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Quicksort
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create an unsorted array of string elements
            string[] unsorted = { "z", "e", "x", "c", "m", "q", "a" };

            // Print the unsorted array
            for (int i = 0; i < unsorted.Length; i++)
            {
                Console.Write(unsorted[i] + " ");
            }

            Console.WriteLine();

            // Sort the array
            Quicksort(unsorted, 0, unsorted.Length - 1);

            // Print the sorted array
            for (int i = 0; i < unsorted.Length; i++)
            {
                Console.Write(unsorted[i] + " ");
            }

            Console.WriteLine();

            Console.ReadLine();
        }

        public static void Quicksort(IComparable[] elements, int left, int right)
        {
            int i = left, j = right;
            IComparable pivot = elements[(left + right) / 2];

            while (i <= j)
            {
                while (elements[i].CompareTo(pivot) < 0) 
                { 
                    i++; 
                } 
                while (elements[j].CompareTo(pivot) > 0)
                {
                    j--;
                }

                if (i <= j)
                {
                    // Swap
                    IComparable tmp = elements[i];
                    elements[i] = elements[j];
                    elements[j] = tmp;

                    i++;
                    j--;
                }
            }

            // Recursive calls
            if (left < j)
            {
                Quicksort(elements, left, j);
            }

            if (i < right)
            {
                Quicksort(elements, i, right);
            }
        }

    }
}


  • علی بابایی کلجاهی
۲۰
مهر
۹۶


الگوریتم جستجوی باینری یا دودویی : تکنیکی است برای یافتن یک مقدار عددی از میان مجموعه‌ای از اعداد مرتب. این متد محدوده جستجو را در هر مرحله به نصف کاهش می‌دهد، بنابراین هدف مورد نظر یا به زودی پیدا می‌شود و یا مشخص می‌شود که مقدار مورد جستجو در فهرست وجود ندارد.


جستجوی دودویی فقط در آرایه های مرتب استفاده می شود.در این روش عنصر مورد نظر با خانه وسط آرایه مقایسه می شود اگر با این خانه برابر بود جستجو تمام می شود اگر عنصر مورد جستجو از خانه وسط بزرگتر بود جستجو در بخش بالایی آرایه و در غیر این صورت جستجو در بخش پایینی آرایه انجام می شود(فرض کرده ایم آرایه به صورت صعودی مرتب شده است) این رویه تا یافتن عنصر مورد نظر یا بررسی کل خانه های آرایه ادامه می یابد. جستجوی دودویی نمونه‌ای از الگوریتمهای تقسیم و غلبه می‌باشد.


کد سی شارپ :

* در این کد ما فرض می کنیم آرایه ای که داریم مرتب شده هست.

سورس مرتب سازی حبابی با سی شارپ


using System;
using System.Text;

namespace Binary_Search_Cristiansoft
{
class Program
{
static void Main(string[] args)
{
int left=0,right=0,middle=0,key=0,f=0;

//آرایه

int[] array = {10,22,33,44,55,66,77,88,99,111};

// دریافت عدد برای جستجو در آرایه

Console.WriteLine("Enter a number for search : ");
key = int.Parse(Console.ReadLine());

// شروع عملیات جستجوی باینری

while(left <= right)
{
middle = (int) ((left + right)/2);
if(key == array[middle])
{
Console.WriteLine(Found !!!);
f = 1;
break;
}
if(key > array[middle])
{
left = middle + 1;
}
if(key < array[middle])
{
left = middle - 1;
}
}

if(f == 0)
{
Console.WriteLine("Sorry , Not Found!!!");
}

// پایان عملیات جستجوی باینری

Console.ReadKey();
}
}
}


  • علی بابایی کلجاهی