تبلیغات
آموزش برنامه نویسی سی ++،سی شارپ،جاوا اسکریپت - مرتب سازی حبابی(Buble Sort)
آموزش برنامه نویسی سی ++،سی شارپ،جاوا اسکریپت

مرتبه
تاریخ : یکشنبه 13 آذر 1390

برنامه: مرتب سازی حبابی یک آرایه از اعداد.

تعریف مرتب سازی حبابی:

         این الگوریتم ساده ترین و معروف ترین الگوریتم برای مرتب سازی داده است.

فرض کنید می‌خواهیم n داده به صورت صعودی مرتب شوند. عنصر اول را با با عنصر دوم مقایسه کرده، و در صورتی که عنصر اول بزرگتر باشد باشد جای عنصر اول و دوم را عوض می‌کنیم. همین کار را با عناصر دوم و سوم انجام می‌دهیم و همینطور عناصر سوم و چهارم ، الی آخر. وقتی این کار تمام شد بزرگ‌ترین عنصر بین داده‌ها به آخر لیست می‌رسد . حالا یک بار دیگر از اول این کار را انجام می‌دهیم اما این بار تا عنصر (n -۱)ام ادامه می‌دهیم (عنصر nام در مرحله اول در جای خودش قرار گرفته). باز هم این کار را تا عنصر (n - ۲)ام تکرار می‌کنیم ، و بازهم .... تا اینکه بالاخره داده‌ها مرتب می‌شوند.

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


         

الگوریتم:

پس از خواندن اداد از ورودی که

در سی++

توسط  آرایه و دستورات cin و ...

for(int i =0;i < arraySize;i++)

{

cin>>array[ i];

}

که یک آرایه با نام array و اندازه ی arraySize را از ورودی می خواند که بین هر عد یک فضای خالی باید باشد یا بعد هر عدد یک enter زده شود

و در سی شارپ و جاوااسکریپت

از طریق تکست باکس ها که طبق قرارداد ما ن بعد هر عدد یک کاما باید وارد شود

مثال:

برای ورود اعداد 5و3و0و1و4و2 داریم:

5,3,0,1,4,2,

که پس از ارسال تکست باکس به تابع مقدار زیر قابل مشاهده هست

0,1,2,3,4,5


 مرتب سازی حبابی ++C
 #include<iostream.h>
#include<conio.h>
void bubleSort(int num[],int numSize)
{

   int temp=0;
   for(int i=numSize;i>0;i--)
   {
      for(int j=0;j<i;j++)
      if(num[j] > num[j+1])
      {
         temp = num[j];
         num[j] = num[j+1];
          num[j+1] = temp;
      }
   }

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

bubleSort(test,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[] bubleSort(string test)
{

   int i = 0;

   int test2size = 0;


  //count number's that entered in textbox by counting ','
   for (i = 0; i < txt1.TextLength; i++)
      if (test[i] == ',')
         test2size++;

   int[] test2 = new int[test2size];
   test2size = 0;

   for (i = 0; i < txt1.TextLength; i++)
   {

      if (test[i] != ',')
         test2[test2size] = test2[test2size] * 10 + Int32.Parse(test[i].ToString());
      else test2size++;

   }

   int temp = 0;
   for (i = test2size - 1; i > 0; i--)
   {
      for (int j = 0; j < i; j++)
         if (test2[j] > test2[j + 1])
        {
             temp = test2[j];
             test2[j] = test2[j + 1];
             test2[j + 1] = temp;
        }
   }

return test2;
}
//..............................................................
public void button1_Click(object sender, EventArgs e)
{

lstb1.Items.Clear();


int[] test=bubleSort(txt1.Text);


for (int i = 0; i < test.Length; i++)
{
lstb1.Items.Add(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 bubleSort(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
{
alert(" test2["+test2size+"] = "+test2[test2size]);
test2size++;
test2[test2size]=0;
}
}

var temp = 0;
for (i = test2size - 1; i > 0; i--)
{
for (j = 0; j < i; j++)
{
if (test2[j] > test2[j + 1])
{
temp = test2[j];
test2[j] = test2[j + 1];
test2[j + 1] = temp;
}
}
}
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="bubleSort( 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>

نکات:  آرایه و تابع

ارسال آرایه به تابع در سی++

تابع را به صورت زیر اعلان می کنیم(بدنه ی اصلی تابع)

void buble Sort(int num[],int numSize)
{

دستورات تابع
}

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

  int test[10];
   

bubleSort(test,size-1);


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

ارسال تکست باکس(TextBox) به تابع در سی شارپ

برای این کار،مقدار تکست باکس را به تابع می فرستیم .مانند:

bubleSort(txt1.Text);

 txt1 یک تکست باکس می باشد.

و در قسمت تعریف ابع به این صورت عمل می کنیم

bubleSort(string test )

  {}

که مقدار txt1.text در متغیر  test قرار می گیرد

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

ارسال تکست باکس(TextBox) به تابع در جاوااسکریپت

در رویداد کلیک دکمه فرمان با ارسال نام فیلد تکست باکس به عنوان آرگومان کار شروع می شود 

<input type="button" value=" Sort " onClick="bubleSort( txtnum )">

و در قسمت تعریف تابع اینگونه می نویسیم

function bubleSort(mytxt)

حالا در تابه هر جا مقدار تکیت باکس مورد نیاز باشد اینگونه می نویسیم

  mytxt.value.length   برای طول رشته و mytxt.value برای دستیابی به کل رشته  




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

قالب وبلاگ