Voici mon code:sorte d'insertion binaire du tableau ne fonctionne pas (code en C)
#include <stdio.h>
#define SIZE 4
int main(int argc, const char * argv[])
{
double m[SIZE],tmp;
int i,min,max,c,k,l,pos;
for (i=0; i<SIZE; i++) {
printf("a%d? ",i);
scanf("%lf",&m[i]);
}
for (i=0; i<SIZE; i++)
printf("%.1lf ",m[i]);
printf("\n");
k = 1;
//========================
do {
min = 0;
max = k-1;
do
{
c = (min+max)/2;
if (m[c]>m[k])
{
min=c;
}
else {
max=c;
}
c = (min+max)/2;
}
while(min != c);
pos = min;
if(m[pos]<m[k])
{
pos++;
}
tmp = m[k];
l=k;
while (l>pos) {
m[l]=m[l-1];
l--;
}
m[pos]=tmp;
k++;
} while (k != SIZE);
for (i=0; i<SIZE; i++)
printf("%.1lf ",m[i]);
//========================
return 0;
}
peut aider quelqu'un, pourquoi pas le tri des œuvres? Le code est correct, comme je le pense. Peut-être que je suis avec l'algorithme? J'essaie d'utiliser le tri d'insertion binaire. Ou quelqu'un peut-il donner une alternative au code C (pour voir ce qui est incorrect)?
Ce n'est pas binaire. – user1486339
@ user1486339 pourriez-vous s'il vous plaît essayer la version plus récente? – cybertextron