Mọi người có trick hay tip nào bày mình với, mình code CombSort bị TLE
#include <stdio.h>
#include <algorithm>
#define N 1000000
using namespace std;
float a[N];
int n;
bool check_swapped;
int gap;
FILE *ifp;
char filenam[] = "COMBSORT.IN.TXT";
char *mode = "r";
void readData() {
ifp=fopen(filenam,mode);
if(ifp == NULL) {
printf("ERROR");
exit(1);
}
else {
fscanf(ifp,"%d",&n);
int i = 0;
while(fscanf(ifp,"%f",&a[i]) != EOF) {
// a[i] = a[i]*10000;
i++;
}
}
fclose(ifp);
}
int main() {
// scanf("%d",&n);
// for(int i = 0 ; i < n ; i++) {
// scanf("%f",&a[i]);
// }
readData();
gap = n;
check_swapped = true;
while( (gap > 1 )|| check_swapped ) {
gap /= 1.247330950103979;
if (gap < 1) gap = 1;
check_swapped = false;
int i = 0;
int igap = i + (int)gap;
while(igap < n) {
if(a[i] > a[igap]) {
swap(a[i],a[igap]);
check_swapped = true;
}
if(a[i] == a[igap]) {
check_swapped = true;
}
i++;
igap++;
}
}
for(int i = 0 ; i < n ; i++) {
printf("%.2f ",a[i]);
}
return 0;
}

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?