30/09/2018, 17:28

Tại sao mình làm sắp xếp dãy số tăng dần mà kết quả ra là dãy giảm dần?

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void nhapmang(int A[], int n)
{
	for(int i=0; i<n; i++)
	{
		printf("A[%d] =", i);
		scanf("%d",&A[i]);
	}
}
void xuatmang(int A[], int n)
{
	for(int i=0; i<n; i++)
	printf("%d", A[i]);
}
void swap(int &a, int &b)
{
	int t=a;
		a=b;
		b=t;
}
void interchange_sort(int A[], int n)
{
	for(int i=0; i<n; i++)
	{
		for(int j=0; j<n; j++)
			if(A[j]<A[i])
				swap(A[i], A[j]);
	}
}
int main()
{
	int A[100];
	int n;
	printf("n =");
	scanf("%d", &n);
	nhapmang(A,n);
	printf("mang truoc khi nhap:	");
	xuatmang(A,n);
	printf("
mang sau khi nhap:	");
	interchange_sort(A,n);
	xuatmang(A,n);
	_getch();
	return 0;
}
Gió viết 19:44 ngày 30/09/2018

Thuật toán có vấn đề rồi: j chạy từ i+1 chứ

Nguyen Van Hung viết 19:44 ngày 30/09/2018

thuật toán sắp xếp sai

for (int I=1; I,n; I++){
        for (j=i+1; j<=n; j++){
                if (a[i] < a[j]) Swap(a[i],a[j]);
        }
}
Trieu Vo viết 19:43 ngày 30/09/2018

à, mình hiểu rồi, thanks các bạn nhiều nhé

Bài liên quan
0