۲۹-آذر-۱۳۸۹, ۲۱:۱۵:۴۹
سلام
یه موضوع تکلیفه به این صورت
با استفاده از الگوریتم های مرتب سازی (به غیر از حبابی) برنمه ای بنویسید ک 20 عدد را از ورودی دریافت کرده و آنها را به ترتیب در خروجی نمایش دهد
فرقی نمیکنه الگوریتمش چی باشه ، انتخابی ، سریع ، درجی یا هر چیز دیگه
منتها من برنامشو با دو تا الگوریتم متفاوت میخام به غیر از حبابی
اگر امکانش هستاین برنامه با الگوریتم انتخابی نوشته شده ومنبعشم اینجا هست
اینو میخواستم تعمیمش یدم به 20 ورودی و بعضی دستوراشو از c++به c تبدیل کنم و از برنامه نویسی سی هیچی
یادم نمونده
یه الگوریتم مرتب سازی دیگه هم که برنامش ساده باشه به همین صورت نیاز دارم
اینم از اینجا کپی کردم
این هم به همین صورت میخواستم به همین صورت تعمیمش بدم
البته برنامه دوم فکر کنم غلط هم زیاد داره
یه سوال دیگه این که این خط چیکار میکنه؟
تشکر
یه موضوع تکلیفه به این صورت
با استفاده از الگوریتم های مرتب سازی (به غیر از حبابی) برنمه ای بنویسید ک 20 عدد را از ورودی دریافت کرده و آنها را به ترتیب در خروجی نمایش دهد
فرقی نمیکنه الگوریتمش چی باشه ، انتخابی ، سریع ، درجی یا هر چیز دیگه
منتها من برنامشو با دو تا الگوریتم متفاوت میخام به غیر از حبابی
اگر امکانش هست
کد:
#include <iostream.h>
void selectionSort(int *array,int length)//selection sort function
{
int i,j,min,minat;
for(i=0;i<(length-1);i++)
{
minat=i;
min=array[i];
for(j=i+1;j<(length);j++) //select the min of the rest of array
{
if(min>array[j]) //ascending order for descending reverse
{
minat=j; //the position of the min element
min=array[j];
}
}
int temp=array[i] ;
array[i]=array[minat]; //swap
array[minat]=temp;
}
}
void printElements(int *array,int length) //print array elements
{
int i=0;
for(i=0;i<10;i++)
cout<<array[i]<<endl;
}
void main()
{
int a[]={9,6,5,23,2,6,2,7,1,8}; // array to sort
selectionSort(a,10); //call to selection sort
printElements(a,10); // print elements
}
اینو میخواستم تعمیمش یدم به 20 ورودی و بعضی دستوراشو از c++به c تبدیل کنم و از برنامه نویسی سی هیچی
یادم نمونده
یه الگوریتم مرتب سازی دیگه هم که برنامش ساده باشه به همین صورت نیاز دارم
اینم از اینجا کپی کردم
کد:
#include <iostream>
using namespace std;
void bucketSort(int a[],int n, int max)
{
int* buckets = new int[max];
int SIZE = n;
for(int j = 0 ; j <= max ; j++)
buckets[j] = 0;
for(int i = 0 ; i < SIZE ; i++)
++buckets[a[i]];
for(int i = 0 , j = 0 ; j <= max ; ++j)
for(int k = buckets[j] ; k > 0 ; k--)
a[i++] = j;
for(int i = 0 ; i < SIZE ; i++)
cout << a[i] << " ";
cout << "\n";
}
int main()
{
int a[] = {25,54,73,11,83,52,23,91};
int elem = sizeof(a)/sizeof(int);
int max = a[0];
for(int i = 0 ; i < elem ; i++)
if(a[i] > max)
max = a[i];
bucketSort(a, elem, max);
system("pause>nul");
}
این هم به همین صورت میخواستم به همین صورت تعمیمش بدم
البته برنامه دوم فکر کنم غلط هم زیاد داره
یه سوال دیگه این که این خط چیکار میکنه؟
کد:
using namespace std;