عضو شوید



:: فراموشی رمز عبور؟

عضویت سریع

نام کاربری :
رمز عبور :
موبایل :
ایمیل :
نام اصلی :
تاریخ : دوشنبه 19 خرداد 1393
بازدید : 780
نویسنده : هادی مومنی

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

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

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

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

}
}
}


می توانید دیدگاه خود را بنویسید

/images/anymous.png
عشق یه طرفه در تاریخ : دوشنبه 08 دی 1404 - - گفته است :
سلام مب خوب و پر محتوایی داری برات ارزوی موفقیت میکنم


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

RSS

Powered By
loxblog.Com
💬 نظرات کاربران
💬ثبت نام کاربران
💬ورود کاربران