ايران ويج

نسخه‌ی کامل: الگوریتم های مرتب سازی اعداد با زبان 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;
تشکر