01/10/2018, 00:43

[C++] Giảm thời gian chạy của code, tối ưu code

Mọi người đọc giúp mình đoạn code dưới đây, mọi người có thể nói cho mình biết mình nên làm sao để giảm thời gian chạy của code, cảm ơn mọi người nhiều ạ.

int main(){
	unsigned long n, k, min, max;
	cin >> n >> k;
	vector<unsigned long> x(n);
	for (unsigned long x_i = 0; x_i < n; x_i++){
		cin >> x[x_i];
	}
	for (unsigned long i = 0; i < n - 1; i++)
	{
		for (unsigned long j = i + 1; j < n; j++)
		{
			if (x[j] < x[i])
			{
				unsigned long temp = x[i];
				x[i] = x[j];
				x[j] = temp;
			}
		}
		min = x[0];
		max = x[n - 1];
	}
	unsigned long dem = 0;
	while (min < max)
	{
		min += 2 * k + 1;
		dem++;
	}
	cout << dem << endl;
	return 0;
}
明玉 viết 02:45 ngày 01/10/2018

Cái này có phải là sắp xếp nổi bọt không, đổi sang thuật toán nhanh hơn (Heap Sort, Quick Sort,…)

Thanh Bình Lê viết 02:45 ngày 01/10/2018

radix sort thì sao bạn, hình như nó nhanh hơn 2 cái đó phải không bạn?

明玉 viết 02:53 ngày 01/10/2018

Mình chịu, bạn phải tự tay benchmark thôi (tạo ngẫu nhiên mảng có thật nhiều phần tử, rồi sắp xếp rồi đo thời gian).

Thanh Bình Lê viết 02:59 ngày 01/10/2018

uhm, vậy mình sẽ thử cái sort, cảm ơn bạn nhiều nhé

Bài liên quan
0