Xin chào, mình có một bài tập như thế này
Hãy viết một hàm gọi là merge_arrays() nhận vào hai mảng một chiều đã được sắp xếp và trộn chúng thành một mảng cũng được sắp xếp. Khi thực hiện, không được chuyển hai mảng vào một mảng rồi sắp xếp lại. Hàm có tiêu đề như sau: void merge_arrays(double a[],double b[],double c[], int n, int m) ở đây, a và b là hai mảng đã sắp xếp và c là mảng chứa kết quả trộn.
và đây là code mà mình kiếm được trên google
Mình có một thắc mắc là không biết hàm index nó hoạt động như thế nào ạ ? mình có thử debug để xem nhưng vẫn không hiểu lắm, không biết đây có phải là một trong các thuật toán sắp xếp không ạ. Mình vẫn chưa học cấu trúc dữ liệu và giải thuật nên về mấy phần thuật toán này mình hơi tệ, Mong được mọi người giúp đỡ và giải đáp , xin cảm ơn 
void arrays(long a[],long b[],long c[],int n,int m);
void encoder(long a[],int n);
void index(long a[],int n);
void display(long a[],int n);
int main()
{
long a[100],b[100],c[200];
int n,m;
do
{
printf("Nhap vao kich thuoc mang A = ");
scanf("%d",&n);
if(n>100||n<0)
printf("Error\n");
}while(n>=100&&n<=0);
encoder(a,n);
do
{
printf("Nhap vao kich thuoc mang B = ");
scanf("%d",&m);
if(m>100||m<0)
printf("Error\n");
}while(m>=100||m<=0);
encoder(b,m);
index(a,n);
index(b,m);
printf("\n");
printf("Mang a sau khi sap xep tang\n");
printf("\n");
display(a,n);
printf("\n");
printf("\nMang b sau khi sap xep tang\n");
printf("\n");
display(b,m);
arrays(a,b,c,m,n);
printf("\n");
printf("\nMang sau khi sap xep tron\n");
printf("\n");
display(c,n+m);
return 0;
}
void arrays(long a[],long b[],long c[],int n,int m)
{
int i=0,j=0,k=0;
while((i<n)&&(j<m))
{
if(a[i]<=b[j])
{
c[k]=a[i];
i+=1;
}
else
{
c[k]=b[j];
j+=1;
}
k+=1;
}
while(i<n)
{
c[k]=a[i];
i+=1;
k+=1;
}
while(j<m)
{
c[k]=b[j];
j+=1;
k+=1;
}
}
void encoder(long a[],int n)
{
int i;
for(i=0;i<n;i++)
a[i]=rand();
}
void index(long a[],int n)
{
int i,j;
long x;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{
x=a[i];
a[i]=a[j];
a[j]=x;
}
}
void display(long a[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%6.1d\t",a[i]);
}
}
có điều viết không tốt nên khó hiểu. Với lại đặt tên hàm linh tinh 

Mà sao thần kì thế nhỉ, bạn kiếm code nào ra chuẩn thuật cả bài luôn code đấy
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?