Xin chào , Mình đang làm một bài tập về sắp xếp mảng trong C. và đây là code mẫu mà mình kiếm được
#include <stdio.h>
#include <stdlib.h>
void sapxep(int a[],int kichthuoc);
int main()
{
int a[8]={8,3,4,5,6,7,1,2};
printf("Mang truoc khi sap xep\n");
printf("a ={8,3,4,5,6,7,1,2}\n");
sapxep(a,8);
return 0;
}
void sapxep(int a[],int kichthuoc)
{
int i,j,temp=0;
for(i=0;i<kichthuoc-1;i++)
for(j=i+1;j<kichthuoc;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
printf("Mang sau khi sap xep lai\n");
for(i=0;i<kichthuoc;i++)
{
printf("%d ",a[i]);
}
}
Mong các bạn giải thích giúp mình về 2 vòng lặp for về cách thức nó họat động ra sao , như thế nào ?
Mình có dạo một vòng quanh google thì tìm được thuật toán sắp xếp nổi bọt và nó có liên quan đến đoạn code này, nhưng đọc thì cũng hiểu lan man, không nắm bắt rõ được, do mình tự học và mình cũng chưa học phần cấu trúc dữ liệu và giải thuật, thế nên, mong các bạn giải thích về cái cách mà 2 vòng lặp đó hoạt động . Và đây là đoạn code mình không hiểu.
int i,j,temp=0;
for(i=0;i<kichthuoc-1;i++)
for(j=i+1;j<kichthuoc;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
Mong các bạn giúp đỡ. Xin cảm ơn