تبلیغات
آموزش برنامه نویسی سی ++،سی شارپ،جاوا اسکریپت - مرتب سازی ادغامی merge sort
آموزش برنامه نویسی سی ++،سی شارپ،جاوا اسکریپت

مرتبه
تاریخ : یکشنبه 27 آذر 1390
برنامه: آرایه ای از اعداد را به روش ادغام، یا همان  marge sort مرتب می کند

الگوریتم : 

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

1 - تابع  Marge Sort یا  MS().

void ms(int arr[],int lx,int rx)

این تابع از عنصر lx تا عنصر rx آرایه ی arr[] را پردازش می کند.


2 - تابع sort یا sortm

void sort(int arr[],int lx,int mid1,int mid2 , int rx)

این تابع  قسمت اول آرایه ی arr یعنی lx تا mid1  و قسمت دوم یعنی mid2 تا rx  را مرتب کرده  و در آرایه  temp نتیجه را که مرتب شده ی دو قسمت فوق می باشد را ذخیره ، سپس توسط دستور زیر ، عناصر مرتب شده را در آرایه ی اصلی کپی می کند.(که mid2=mid1+1)

for(int i=0,k=lobj;i <j;i++,k++) arr[k]=temp[i];

که lobj همان lx و robj همان rx می باشد.


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

فرمت ورودی اعدا باید به صورت زیر باشد.

example : 5,2,6,4,2,3,9,8,5,

که پس از هر عددی یک "," باید وارد شود و بدون هیچ گونه فاصله ای.

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


#define size 10

void sort(int arr[],int lx,int mid1,int mid2 , int rx)
{

   int j=0; 
   int temp[size];
   int lobj=lx,robj=rx;

   //sorting arr[lx]..arr[mid] with arr[mid2]...arr[rx] and save it in temp[]
   while( (lx <= mid1) && (mid2 <= rx) )
   {
         if (arr[lx] < arr[mid2])
        {
                temp[j++]=arr[lx++];
        }
        else{
              temp[j++]=arr[mid2++];
              }
    }
   while( mid2 <= rx)
   {
          temp[j++]=arr[mid2++];
   }
   while( lx <= mid1)
   {
            temp[j++]=arr[lx++];
   }
   //copy temp[] into the original array ( arr[] )
   for(int i=0,k=lobj;i <j;i++,k++)       arr[k]=temp[i];
  }

void ms(int arr[],int lx,int rx)
{


   if(rx > lx)
   {

          int mid1 = (lx + rx)/2;
           int mid2 = mid1+1;

          ms(arr,lx,mid1);
         ms(arr,mid2,rx);
         sort(arr,lx,mid1,mid2,rx);
   }

}

int main()
{

   int test[size] = {5,9,1,8,2,7,3,6,4,0};

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

   ms(test,0,size-1);

    cout<<"\nsorted array is : ";
   for(int i=0; i<size ; i++)
          cout<<" "<<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();
}


void sort(int[] arr,int lx,int mid1,int mid2 , int rx)
{

   int j=0; 
   int[] temp = new int[arr.Length];
   int lobj=lx,robj=rx;

   //sorting arr[lx]..arr[mid] with arr[mid2]...arr[rx] and save it in temp[]
   while( (lx <= mid1) && (mid2 <= rx) )
   {
          if (arr[lx] < arr[mid2])
         {
               temp[j]=arr[lx];
                j = j + 1;
                lx = lx + 1;
         }
         else{
                temp[j]=arr[mid2];
                j = j + 1;
                 mid2 = mid2 + 1;
          }
   }
   while( mid2 <= rx)
   {
          temp[j]=arr[mid2];
           j = j + 1;
           mid2 = mid2 + 1;
   }
   while( lx <= mid1)
   {
           temp[j]=arr[lx];
           j = j + 1;
           lx = lx + 1;
   }
   //copy temp[] into the original array ( arr[] )
   for(int i=0,k=lobj;i <j;i++,k++)           arr[k]=temp[i];
}


void ms(int[] arr, int lx, int rx)
{


   if(rx > lx)
   {

             int mid1 = (lx + rx)/2;
             int mid2 = mid1+1;

              ms(arr,lx,mid1);
              ms(arr,mid2,rx);
              sort(arr,lx,mid1,mid2,rx);
 }

}
private void button1_Click(object sender, EventArgs e)
{

   lbl1.Text = "Sorting ...";
   int[] test = { 0,5,2,3,1,3, 9, 0, 8, 1, 7, 2, 6, 3, 4 };
   ms(test, 0, test.Length - 1);
   lbl1.Text = "";
   for (int i = 0; i < test.Length; i++)
             lbl1.Text = lbl1.Text + test[i] + ",";
}
}
}



  برنامه مرتب سازی ادغامی با زبان 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 sortm(size,arr,lx,mid1,mid2,rx)
{

   var j=0; 
   var temp = new Array(size);
   var lobj=lx;
   var robj=rx;
   //sorting arr[lx]..arr[mid] with arr[mid2]...arr[rx] and save it in temp[]
   while( (lx <= mid1) && (mid2 <= rx) )
   {
          if (arr[lx] < arr[mid2])
          {
                   temp[j++]=arr[lx++];
           }
           else{
                    temp[j++]=arr[mid2++];
          }
   }
   while( mid2 <= rx)
   {
             temp[j++]=arr[mid2++];
   }
   while( lx <= mid1)
   {
             temp[j++]=arr[lx++];
   }
   //copy temp[] into the original array ( arr[] )
   var k = lobj
   for( i=0; i<j ; i++)
   {
            arr[k]=temp[i];
             k++;
   }
}

//.................................................................
function ms(arr,lx,rx)
{

   if(rx > lx)
   {

        var mid1 = Math.floor((lx + rx)/2);
        var mid2 = mid1+1;

         ms(arr,lx,mid1);
         ms(arr,mid2,rx);
         sortm((rx - lx),arr,lx,mid1,mid2,rx);
   }

 }
//.......................................................................
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;
}
}

ms(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

قالب وبلاگ