
تابع مرتب سازی انتخابی(Selection Sort) که متوسط عملکرد آن О(n²) است:
{
int i, j, minIndex, tmp;
for (i = 0; i < len - 1; i++)
{
minIndex = i;
for (j = i + 1; j < len; j++)
if (arr[j] < arr[minIndex])
minIndex = j;
if (minIndex != i)
{
tmp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = tmp;
}
}
}
//end

الگوریتم مرتب سازی حبابی که متوسط عملکرد آن O(n2) است:
{
int i, j, item;
for(i=len-1;i>0;i--)
for(j=0;j<i;j++)
if(temp[j]>temp[j+1])
{
item=temp[j];
temp[j]=temp[j+1];
temp[j+1]=item;
}
}
//end
مرتب سازی آرایه ها (Sort):
عمل مرتب سازی در کامپیوتر، عمل بسیار مهمی محسوب میشود و بسیاری از روش های مرتب سازی باید بر روی آرایه ها انجام شود، از این رو الگوریتم های بسیاری برای مرتب سازی آرایه ها طراحی شده است. این الگوریتم ها از الگوریتم های ساده تا پیچیده طراحی شده اند و هم اکنون نیز تحقیقات برای بهبود روش های مرتب سازی ادامه دارد.
برای مرتب سازی آرایه یک بعدی، روش های مختلفی همچون روش مرتب سازی حبابی (Bubble Sort)، انتخابی (Selection Sort)، سریع (Quick Sort)، درجی (Insertion Sort)، ادغامی (Merge Sort) و ... وجود دارد که در تمامی روش های فوق تفاوت در روش مقایسه و جابجایی است، که باعث شده الگوریتم های متفاوتی تولید شوند.
در این بین الگوریتم مرتب سازی حبابی بسیار ساده و قابل فهم است.
در پست های آینده، توابع اکثر روش های مرتب سازی گذاشته خواهد شد.
آرایه یک بعدی به عنوان آرگومان تابع:
در زبان c++ همانگونه که میتوانیم انواع متغیر ها را به عنوان آرگومان به یک تابع ارسال کنیم، آرایه ها نیز میتوانند به عنوان آرگومان به توابع ارسال شوند. برای ارسال آرایه به تابع، باید نام آرایه به عنوان آرگومان ذکر شود. اگر آرایه به عنوان آرگومان تابع باشد، پارامتر معادل آن میتواند بصورت زیر تعریف شود:
1. آرایه با طول مشخص
2. آرایه با طول نامشخص که در این صورت بهتر است طول آرایه به آرگومان دیگری منتقل شود.
3. اشاره گر که میتوان اشاره گری به یک آرایه تعریف نمود.(در جلسات آینده با اشاره گر ها کاملا آشنا خواهید شد.)
شکل کلی ارسال آرایه به توابع:
void f2(int x[], int len);
void main()
{
int x[10];
f1(x);
f2(x,10);
}
void f1(int x[10])
{
...
}
void f2(int x[], int len)
{
...
}
//end
- برچسب ها: آرایه، طول آرایه، بعد، آرایه و توابع، تابع آرایه، function، 19، array،
مقدار دهی اولیه به آرایه تک بعدی:
در هنگام تعریف میتوان خانه های یک آرایه ی یک بعدی را مقداردهی اولیه نمود، در این حالت حداقل یک مقدار و حداکثر به تعداد عناصر آرایه میتوان مقدار دهی را انجام داد.
مقدار دهی به آرایه هنگام تعریف آن باید از خانه ی اول، پشت سر هم و به صورت پیوسته انجام شود.
مثال:
int x[3] = {10, 20};
int x[3] = {10, 20, 30};
//end
در زبان c++ در آرایه های یک بعدی فقط به شرطی میتوان بعد آرایه را خالی گذاشت که هنگام تعریف آن مقدار دهی نماییم، در غیر این صورت خطا خواهیم داشت.
مثال درست:
//end
- برچسب ها: آرایه، مقداردهی، مقدار دهی، مقداردهی اولیه، مقدار دهی اولیه، 18، بعد، خالی گذاشتن بعد، یعد خالی، array،
آرایه های یک بعدی:
تاکنون داده های ورودی و بقیه داده های مورد نیاز را در متغیر ها و ثابت ها ذخیره میکردیم. اما اگر تعداد ورودی ها زیاد باشد، نیاز داریم تعداد زیادی متغیر را تشکیل دهیم که این کار باعث میشود روند عملیات برنامه نویسی بسیار پیچیده شود. بنابراین برای جلوگیری از این مشکلات میتوانیم از امکان تعریف آرایه ها در زبان ++C بهره مند شویم.
آرایه ها خانه های پشت سر هم در حافظه هستند که همگی از یک نوع و با یک نام و با شماره های خانه متفاوت(اندیس آرایه) هستند.
روش تعریف آرایه یک بعدی:
نکته: محل هر عضو از آرایه توسط شماره(اندیس) که در [] می گذاریم، مشخص میشود.
نکته: اندیس شروع آرایه در زبان ++C صفر میباشد یعنی شماره گذاری خانه های آرایه از 0 شروع میشود و خانه ی اول آرایه اندیس 0 دارد.
نکته: در زبان ++C اسم آرایه آدرس خانه ی اول آرایه است.
- برچسب ها: آرایه، آرایه یک بعدی، آرایه تک بعدی، تعریف آرایه، 17، Array،
تبلیغات
