تبلیغات
آموزش برنامه نویسی سی ++،سی شارپ،جاوا اسکریپت - مرتب سازی سریع یا Quick Sort
آموزش برنامه نویسی سی ++،سی شارپ،جاوا اسکریپت

مرتبه
تاریخ : چهارشنبه 23 آذر 1390
برنامه: مرتب سازی یک آرایه با الگوریتم quick Sort 

الگوریتم:

برای این کار از دو تابع استفاده می کنیم

1 - تابع پارتیشن

int Partition(int arr[],int Lobj,int Robj)

* که یک آرایه ( arr[] ) و سمت چپ ترین اندیس آرایه ( Lobj ) و سمت راست ترین اندیس آرایه ( Robj ).

تابع پارتیشن در هر مرحله اجرا ،سمت چپ ترین عنصر را(Lobj) به عنوان عنصر محوری (Pivot)انتخاب می کند و  تمام عناصر بزرگتر از آن را با عناصر کوچکتر از آن تعویض می کند. آرایه ورودی پس از پایان این تابع به گونه ایست که در هر مرحله عنصر محور را در مکان اصلی اش قرار می دهد.

\\.......................................................//

2- تابع کویک سورت

void quicksort(int arr[],int Lobj,int Robj)

تابع کویک سورت هر بار آرایه را به دو قسمت تقسیم می کند

قسمت اول شامل خانه های سمت چپ ترین خانه (Lobj) تا عنصر محوری  (Pivot)

قسمت دوم شامل خانه های عنصر محوری  (Pivot)  تا سمت راست ترین خانه  (Robj)



 برنامه مرتب سازی سریع به زبان++C
  #include<iostream.h>
#include<conio.h>

#define size 21
//.................................................................
int Partition(int arr[],int Lobj,int Robj)
{

    int pivot = Lobj;
    int temp;
    while(Lobj < Robj)
    {
        while(arr[Lobj] <= arr[pivot])
        Lobj++;  

        while(arr[Robj] > arr[pivot])
        Robj--;

        if(Lobj < Robj)
       {
           temp = arr[Lobj];
           arr[Lobj] = arr[Robj];
           arr[Robj] = temp;
        }
     }
if( arr[Robj] < arr[pivot])
{
    temp = arr[pivot];
    arr[pivot] = arr[Robj];
    arr[Robj] = temp;
}
    return Robj;
}
//.................................................................
void quicksort(int arr[],int Lobj,int Robj)
{

    if(Lobj < Robj)
    {  
       int pivot = Partition(arr,Lobj,Robj);
       quicksort(arr,Lobj,pivot-1);
       quicksort(arr,pivot+1,Robj);
    }
}
//.................................................................

main()
{

    int test[size]={15,20,10,19,11,18,12,17,13,16,14,5,9,0,8,1,7,2,6,3,4};

    quicksort(test,0,size-1);

    for(int i=0;i<size;i++)
    cout<<"\ntest["<<i<<"] = "<<test[i];

    getch();
return 0;
}


   برنامه مرتب سازی سریع به زبان #C 
 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int Partition(int[] arr, int Lobj, int Robj)
{

    int pivot = Lobj;
    int temp;
    while(Lobj < Robj)
    { 
       while(arr[Lobj] <= arr[pivot])
            Lobj++;

       while(arr[Robj] > arr[pivot])
           Robj--;

       if(Lobj < Robj)
       {
           temp = arr[Lobj];
           arr[Lobj] = arr[Robj];
           arr[Robj] = temp;
       }
    }
if( arr[Robj] < arr[pivot])
{
    temp = arr[pivot];
    arr[pivot] = arr[Robj];
    arr[Robj] = temp;
} return Robj;
}
//.................................................................
void quicksort(int[] arr,int Lobj,int Robj)
{

    if(Lobj < Robj)
    {  
        int pivot = Partition(arr,Lobj,Robj);
        quicksort(arr,Lobj,pivot-1);
        quicksort(arr,pivot+1,Robj);
    }

}

//.......................................................................

private void button1_Click(object sender, EventArgs e)
{
lbl1.Text = "Sorting ...";
int[] test = { 15, 20, 10, 19, 11, 18, 12, 17, 13, 16, 14, 5, 9, 0, 8, 1, 7, 2, 6, 3, 4 };
quicksort(test, 0, test.Length - 1);
lbl1.Text = "";
for (int i = 0; i < test.Length; i++)
lbl1.Text = lbl1.Text + test[i]+",";
}
}
}


* تابع ()run   در کد جاوا اسکریپت، ورودی را با فرمت زیر گرفته و آن را به آرایه ای از اعداد تبدیل می کند سپس با فرستادن آرایه به تابع کویک سورت آن را مرتب مب کند.

6 , 2 , 4 , 3 , 0,5 , 1,   ====>> test2[test2size] ={ 6,2,4,3,0,5,1} 


   برنامه مرتب سازی سریع به زبان JavaScript

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<script language="javascript" type="text/javascript">
function Partition(test2,Lobj,Robj)
{

    var pivot = Lobj;
    var temp=0
    while(Lobj < Robj)
    {
       while(test2[Lobj] <= test2[pivot])
       {
             Lobj++;
        }

         while(test2[Robj] > test2[pivot])
         { 
               Robj--;
          }

          if(Lobj < Robj)
          {
               temp = test2[Lobj];
               test2[Lobj] = test2[Robj];
               test2[Robj] = temp;
          }
     }
if( test2[Robj] < test2[pivot])
{
    temp = test2[pivot];
    test2[pivot] = test2[Robj];
    test2[Robj] = temp;
}
    return Robj;
}
//.................................................................
function quickSort(test2,Lobj,Robj)
{

   if(Lobj < Robj)
    {  
       var pivot = Partition(test2,Lobj,Robj);
       quickSort(test2,Lobj,pivot-1);
       quickSort(test2,pivot+1,Robj);
    }
}
//.......................................................................

function run(mytxt)
{
   var i = 0;
   var test = mytxt.value;
   var test2size = 0;

   for (i = 0; i < mytxt.value.length; i++)
   {

      if (test.charAt(i) == ',')
     {
         test2size++;
     }

   }

   var test2 = new Array(test2size);
   test2size = 0;
   test2[test2size]=0;
   for (i = 0; i < mytxt.value.length; i++)
   { 

      if (test.charAt(i) != ',')
      {

           test2[test2size] = ((test2[test2size] * 10) + parseInt(test.charAt(i)));
      }
     else
     {
         test2size++;
         test2[test2size]=0;
     }
   }

   quickSort(test2,0,test2size-1);

   for (i = 0; i < test2size; i++)
   {
           document.getElementById("result").innerHTML=document.getElementById("result").innerHTML+test2[i]+",";
    }
}
//..........................................................................................

</script>
<body>
<form name="form1">
Enter number's :<input type="text" name="txtnum"><input type="button" value=" Sort " onClick="run(txtnum)"><br><br>
<table width="100%" border="1">
    <tr>
        <th width="10%" scope="row">Result :</th>
             < td id="result" width="90%"></td>
    </tr>
</table>
<br>
</form>
</body>
</html>






طبقه بندی: مرتب سازی، 
می تونید با ارسال شارژ از من حمایت کنید 09392888216
برچسب ها: سورس کد برنامه مرتب سازی سریع، سورس کد برنامه مرتب سازی سریع به زبان سی++، سورس کد برنامه مرتب سازی سریع به زبان سی پلاس پلاس، سورس کد برنامه مرتب سازی سریع به زبان سی شارپ، سورس کد برنامه مرتب سازی سریع به زبان جاوا اسکریپت، سورس کد برنامه مرتب سازی سریع به زبان c++، سورس کد برنامه مرتب سازی سریع به زبان c#،
آرشیو مطالب
صفحات جانبی
پیوند های روزانه
امکانات جانبی
blogskin

قالب وبلاگ