30/09/2018, 23:31
Anh chị tìm giúp lỗi trong code miêu tả thuật toán tìm kiếm Selection Sort?
Em viết như thế mà chạy không được, Không hiểu ra lỗi sai của mình mong anh chị diễn đàn giúp đỡ với ạ :((
http://codepad.org/NIknBL7B
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#define MAX 100
void khoitaomang (int a[], int n)
{
srand(time(NULL));
n=5;
for (int i=0; i<n; i++)
{
a[i]= rand()%100;
}
}
void xuatmang (int a[], int n)
{
for (int i=0; i<n; i++)
{
cout <<a[i]<<" ";
}
}
void selectionsort(int a[],int n)
{
int vtmin,temp;
for (int i=0; i<n-1; i++)
{
vtmin=i;
for (int j=i+1; j<n; j++)
{
if (a[vtmin]>a[j]) j=vtmin;
}
if (vtmin!=i)
{
temp=a[vtmin];
a[vtmin]=a[j];
temp=a[j];
}
}
}
int main ()
{
int a[MAX],n=5;
khoitaomang(a,n);
xuatmang (a,n);
selectionsort(a,n);
xuatmang (a,n);
getch ();
}
Bài liên quan
Hoán vị sai, gán biến bị sai, làm theo giống như dưới
Phép gán chỗ này là không hợp lý nha bởi vì theo tư tưởng của thuật toán thì mình sẽ tìm vị trí min nên khi tìm được phải cập nhật cho biến min chứ không phải là j.
Sửa lại: vtmin = j; là OK
Đoạn code hoán vị của bạn sai ở cái cuối cùng
Sửa