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;
}
Bài liên quan
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,…)
radix sort thì sao bạn, hình như nó nhanh hơn 2 cái đó phải không bạn?
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).
uhm, vậy mình sẽ thử cái sort, cảm ơn bạn nhiều nhé