recherche

Maison  >  Questions et réponses  >  le corps du texte

java - 请问描述中的排序叫什么名字。

int[] array = { 4, 7, 1, 5, 2, 6 };
for (int i = 0; i < array.length; i++)
{
    for (int j = i; j > 0 && array[j - 1] > array[j]; j--)
    {
        array[j] = array[j - 1] + array[j];
        array[j - 1] = array[j] - array[j - 1];
        array[j] = array[j] - array[j - 1];
    }
}
PHPzPHPz2887 Il y a quelques jours453

répondre à tous(6)je répondrai

  • 黄舟

    黄舟2017-04-17 17:29:35

    Tri par insertion, l'échange ci-dessus n'utilise pas de variables intermédiaires, mais il y a aussi un problème, il peut y avoir un débordement, car a=a b peut provoquer un débordement. Une autre façon sans variables intermédiaires est d'utiliser XOR : a=a. ^b,b=a^b,a=a^b Cette méthode ne convient pas aux nombres à virgule flottante. En bref, elle est simplement utilisée pour échanger des données sans espace supplémentaire. . . L’accent est toujours mis sur l’algorithme lui-même. .

    répondre
    0
  • 迷茫

    迷茫2017-04-17 17:29:35

    Les boucles imbriquées sont écrites en tri par insertion, mais le corps de la boucle interne est différent du tri par insertion.

    répondre
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:29:35

    Tri par insertion, le deuxième niveau de boucle est si array[j-1]>array[j], échangez les valeurs de array[j] et array[j-1]

    répondre
    0
  • 阿神

    阿神2017-04-17 17:29:35

    Tri par insertion

    array[j] = array[j - 1] + array[j];
    array[j - 1] = array[j] - array[j - 1];
    array[j] = array[j] - array[j - 1];

    Ce code signifie échange, aucune variable intermédiaire n'est nécessaire

    répondre
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:29:35

    Tri par insertion. L'intérieur de la boucle de deuxième niveau signifie échanger des valeurs

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-17 17:29:35

    Tri par insertion, le code dans la boucle de deuxième niveau peut paraître un peu brouillon, mais s'il est simplifié, il équivaut à :

    a = a b;
    b = a – b;

    a = a – b;
    * signifie l'échange des valeurs de a et b. Si vous ne comprenez pas, vous pouvez remplacer les nombres spécifiques pour voir.

    répondre
    0
  • Annulerrépondre