01/10/2018, 15:35

Hỏi về selection sort cho danh sách liên kết đơn trong C?

làm s để e có thể sử dụng thuật toán selection sort cho danh sách liên kết trong C ạ??? Tại nếu e dùng bằng mảng, khi tìm giá trị min thì có thể đổi chỗ trực tiếp tại giá trị min đó, còn nếu dùng danh sách liên kết đơnm khi kết thúc vòng for tìm min thì chỉ ra kết quả min, không thể đổi chỗ tại vị trí p->key được ạ.

void selectionsort(int a[], int n)
{
	for (int i = 0; i < n - 1; i++)
	{
		int imin = i;
		for (int j = i + 1; j < n; j++)
		{
			if (a[imin] > a[j])
				imin = j;
		}
		if (a[i] > a[imin])
			HoanVi(a[i], a[imin]);
	}
}

thuật toán trên mảng một chiều đây ạ.

rogp10 viết 17:49 ngày 01/10/2018

Gợi ý: thực ra imin chỉ là vt tương đối so với a thôi.

My Nguyễn viết 17:47 ngày 01/10/2018

Đã làm được r, cám ơn nhìu ạ.

rogp10 viết 17:41 ngày 01/10/2018

Bạn đánh tick cho mình nhé

Bài liên quan
0