117.info
人生若只如初见

c语言排序算法代码怎么写

C语言中常见的排序算法有冒泡排序、插入排序、选择排序、快速排序等。以下是这些排序算法的示例代码:

  1. 冒泡排序(Bubble Sort):
void bubbleSort(int arr[], int n) {
    for (int i = 0; i < n-1; i++) {
        for (int j = 0; j < n-i-1; j++) {
            if (arr[j] > arr[j+1]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}
  1. 插入排序(Insertion Sort):
void insertionSort(int arr[], int n) {
    for (int i = 1; i < n; i++) {
        int key = arr[i];
        int j = i - 1;
        while (j >= 0 && arr[j] > key) {
            arr[j+1] = arr[j];
            j--;
        }
        arr[j+1] = key;
    }
}
  1. 选择排序(Selection Sort):
void selectionSort(int arr[], int n) {
    for (int i = 0; i < n-1; i++) {
        int min_idx = i;
        for (int j = i+1; j < n; j++) {
            if (arr[j] < arr[min_idx]) {
                min_idx = j;
            }
        }
        int temp = arr[min_idx];
        arr[min_idx] = arr[i];
        arr[i] = temp;
    }
}
  1. 快速排序(Quick Sort):
int partition(int arr[], int low, int high) {
    int pivot = arr[high];
    int i = (low - 1);
    for (int j = low; j <= high-1; j++) {
        if (arr[j] < pivot) {
            i++;
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }
    int temp = arr[i+1];
    arr[i+1] = arr[high];
    arr[high] = temp;
    return (i + 1);
}

void quickSort(int arr[], int low, int high) {
    if (low < high) {
        int pi = partition(arr, low, high);
        quickSort(arr, low, pi-1);
        quickSort(arr, pi+1, high);
    }
}

以上是四种常见的排序算法的C语言示例代码。你可以根据实际需求选择合适的排序算法来使用。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe7d0AzsLAwJTDVE.html

推荐文章

  • C语言怎么调用接口获取数据

    在C语言中,可以使用网络编程库或者HTTP请求库来调用接口获取数据。以下是使用curl库来进行HTTP请求的示例代码:
    #include #include #include // 回调函数,...

  • C语言中的抽象类怎么使用

    在C语言中,并没有直接支持抽象类的概念,但可以通过一些技巧来模拟实现抽象类的功能。
    一种方式是使用函数指针来实现多态性。定义一个包含函数指针成员的结...

  • c语言double转char的方法是什么

    在C语言中,可以使用sprintf函数将double类型转换为char类型。
    sprintf函数的原型为:int sprintf(char *str, const char *format, …)
    参数str是一个...

  • c语言取模指的是什么意思

    在C语言中,取模(modulus)指的是求两个数的余数。取模运算符为“%”。
    例如,表达式“a % b”表示将a除以b,然后返回其余数。如果a能被b整除,则结果为0,...

  • python的浮点数怎么保留两位小数

    可以使用以下几种方法来保留浮点数的两位小数: 使用round()函数:round()函数可以将浮点数四舍五入到指定的小数位数。例如: num = 3.14159
    rounded_num =...

  • java枚举的作用是什么

    Java枚举的作用是定义一组有限的常量集合,可以用于表示一组相关的常量。枚举提供了一种更优雅和类型安全的方式来表示常量,可以减少代码中的魔法数字和字符串的...

  • mybatis扫描不到mapper怎么解决

    如果MyBatis无法扫描到Mapper,可能是以下几个原因导致的: 配置文件问题:请确保在MyBatis的配置文件中正确配置了Mapper的扫描路径。在 mybatis-config.xml 或者...

  • android retrofit框架怎么使用

    Retrofit 是一个用于访问 REST API 的开源库。下面是使用 Retrofit 框架的基本步骤: 添加依赖:在项目的 build.gradle 文件中添加 Retrofit 的依赖项。 impleme...