PDA

View Full Version : سوال: در مورد پياده سازي الگوريتم insertion sort



hashemi85sep
دوشنبه 31 فروردین 1388, 08:11 صبح
سلام خدمت دوستان عزيز
مي خواستم بدونم كسي ميتونه كه اين الگوريتم رو پياده سازي كنه؟؟
اين چيزيه كه خودم نوشتم...


#include<stdio.h>
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
void insertionsort(int x[]);
int n;
main()
{
int i,j,k;
int a[100];
cin>>n;
for(i=0;i<n;i++)
a[i]=i+1;
for(i=0;i<n;i++)
cout<<a[i];
getch();
insertionsort(a);
for(i=0;i<n;i++)
cout<<a[i];
getch();
}
void insertionsort(int x[])
{
int j,key,i;
for(j=1;j<n;j++)
{
key=x[j];
i=j-1;
while(i>=0 && key<x[i])
{
x[i+1]=x[i];
i=i-1;
}
x[i+1]=key;
}
}

rivaaaldo
دوشنبه 31 فروردین 1388, 12:27 عصر
همین که نوشتی درسته..
فقط میتونستی همون n رو هم که سراسری تعریف کردی به عنوان ارگومان بفرستی تو تابع

hashemi85sep
سه شنبه 01 اردیبهشت 1388, 12:00 عصر
همین که نوشتی درسته..
فقط میتونستی همون n رو هم که سراسری تعریف کردی به عنوان ارگومان بفرستی تو تابع
اين اجرا ميشه و لي درست جواب نميده....
لطفا اجراش كن بعد ببين مشكلش كجاست؟؟؟؟

rivaaaldo
چهارشنبه 02 اردیبهشت 1388, 22:00 عصر
#include<stdio.h>
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
void insertionsort(int x[],int n);
main()
{
int i,j,k,n;
int a[100];
cout<<"Enter number of list :";
cin>>n;
for(i=0;i<n;i++)
{
cout<<"Enter "<<i+1<<"th number :";
cin>>a[i];
}

cout<<endl<<" Non sorted list : ";
for(i=0;i<n;i++)
cout<<" "<<a[i];
getch();


insertionsort(a ,n);

cout<<" sorted list : ";
for(i=0;i<n;i++)
cout<<" "<<a[i];
getch();
return 0;
}

void insertionsort(int x[],int n)
{
int j,key,i;
for(j=1;j<n;j++)
{
key=x[j];
i=j-1;
while(i>=0 && key<x[i])
{
x[i+1]=x[i];
i=i-1;
}
x[i+1]=key;
}
}