下面是一个使用C语言编写的二分排序代码:

#include <stdio.h>

void binarySort(int array[], int n) {
    int i, j, left, right, middle, temp;
    for (i = 1; i < n; i++) {
        left = 0;
        right = i - 1;
        temp = array[i];
        while (left <= right) {
            middle = (left + right) / 2;
            if (temp < array[middle]) {
                right = middle - 1;
            } else {
                left = middle + 1;
            }
        }
        for (j = i - 1; j >= left; j--) {
            array[j + 1] = array[j];
        }
        array[left] = temp;
    }
}

int main() {
    int array[] = {3, 6, 1, 8, 4, 7, 2, 5};
    int n = sizeof(array) / sizeof(array[0]);
    binarySort(array, n);
    for (int i = 0; i < n; i++) {
        printf("%d ", array[i]);
    }
    return 0;
}

在这个代码中,我们首先定义了一个名为binarySort的函数,它接受两个参数:一个整数数组和该数组的大小。该函数使用一个外层循环来遍历数组中的每个元素(从第二个元素开始),并使用内层循环来查找该元素在已排序的子数组中的正确位置。一旦找到了正确的位置,该函数使用另一个循环来将数组中该位置之后的元素向右移动一位,并将该元素插入到正确的位置。

main函数中,我们定义了一个整数数组,并将其传递给binarySort函数以进行排序。最后,我们遍历已排序的数组并将其打印到控制台上

用C语言写一个二分排序的代码

原文地址: http://www.cveoy.top/t/topic/fmxt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录