عضو شوید



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

عضویت سریع

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

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

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

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

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

ورود کاربران

خوش آمدید! لطفا وارد حساب خود شوید

رمز عبور را فراموش کرده‌اید؟
حساب کاربری ندارید؟

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

نام کاربری یا ایمیل خود را وارد کنید

یا

ثبت نام کاربران

در چند ثانیه حساب کاربری خود را بسازید

قبلا ثبت نام کرده‌اید؟

نظرات کاربران

دیدگاه خود را با ما در میان بگذارید