دانلود رایگان پروژه دانشجویی

مرتب سازی حبابی(Buble Sort)

پنجشنبه, ۲۱ خرداد ۱۳۹۴، ۰۹:۱۵ ق.ظ

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

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

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

فرض کنید می‌خواهیم 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
#include
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]);
}

}
}
}


۹۴/۰۳/۲۱
hadi momene

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی