java - 请问描述中的排序叫什么名字。
PHPz
PHPz 2017-04-17 17:27:35
0
6
449
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];
    }
}
PHPz
PHPz

学习是最好的投资!

membalas semua(6)
黄舟

Isihan sisipan, pertukaran di atas tidak menggunakan pembolehubah perantaraan, tetapi terdapat juga masalah, mungkin terdapat limpahan, kerana a=a b boleh menyebabkan limpahan satu lagi cara tanpa pembolehubah perantaraan ialah menggunakan XOR: a=a ^b,b=a^b,a=a^b Kaedah ini tidak sesuai untuk nombor titik terapung Secara ringkasnya, ia hanya digunakan untuk menukar data tanpa sebarang ruang tambahan. . . Fokus masih pada algoritma itu sendiri. .

迷茫

Gelung bersarang ditulis dalam isihan sisipan, tetapi badan gelung dalam berbeza daripada isihan sisipan.

大家讲道理

Isih sisipan, peringkat kedua gelung ialah jika tatasusunan[j-1]>tatasusunan[j], tukar nilai tatasusunan[j] dan tatasusunan[j-1]

阿神

Isihan sisipan

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

Kod ini bermaksud pertukaran, tiada pembolehubah perantaraan diperlukan

巴扎黑

Isihan sisipan. Bahagian dalam gelung peringkat kedua bermaksud menukar nilai

左手右手慢动作

Isih sisipan, kod dalam gelung tahap kedua mungkin kelihatan agak kemas, tetapi jika dipermudahkan ia bersamaan dengan:

a = a b;
b = a – b;

a = a – b;
* bermaksud pertukaran nilai a dan b Jika anda tidak faham, anda boleh menggantikan nombor tertentu untuk dilihat.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan