คัดลอกรหัสรหัส ดังต่อไปนี้:
// การเรียงลำดับการแทรกโดยตรง
เป็นโมฆะ DirectInsertionSort (int * arr, int nLen)
-
อินท์ฉันเจ;
สำหรับ (i=1; i<nLen; i++)
-
int temp = arr[i];
สำหรับ (j=i-1; j>=0; j--)
-
ถ้า (อุณหภูมิ < arr[j])
arr[j+1] = arr[j];
อื่น
หยุดพัก;
-
ถ้า (j+1 != i)
arr[j+1] = temp; //โปรดทราบว่านี่คือ j+1
-
-
//การแทรกเรียงลำดับครึ่งหนึ่ง
เป็นโมฆะ BinaryInsertionSort (int * arr, int nLen)
-
อินท์ฉันเจ;
int ต่ำ, กลาง, สูง;
สำหรับ (i=1; i<nLen; i++)
-
int temp = arr[i];
if (temp < arr[i-1])//การตัดสินนี้ไม่จำเป็น
-
ต่ำ = 0;
สูง = i-1;
while (low <= high) //error: while( low < high) โปรดทราบว่าจำเป็นต้องมีเครื่องหมายเท่ากับที่นี่
-
กลาง = (ต่ำ+สูง)/2;
ถ้า (อุณหภูมิ < arr [กลาง])
สูง = กลาง - 1;
อื่น
ต่ำ = กลาง + 1;
-
//หลังจากค้นหาตำแหน่งการแทรกผ่านการค้นหาครึ่งทางด้านบน ตำแหน่งการแทรกจะต่ำหรือสูง+1 และต่ำจะเท่ากับสูง+1
//สำหรับ (j=i-1; j>=สูง+1; j--)
-
// arr[j+1] = arr[j];
-
//arr[สูง+1] = อุณหภูมิ;
สำหรับ (j=i-1; j>=ต่ำ; j--)
-
arr[j+1] = arr[j];
-
arr[ต่ำ] = อุณหภูมิ;
-
-
-