void bubbleSort(int arr[], int n) { int i, j;">

c语言排序怎么实现

来源:这里教程网 时间:2026-02-21 16:49:14 作者:

C 语言实现排序

排序是一种将数据集合中的元素按照特定顺序排列的过程。C 语言中可以使用各种排序算法来实现此目的。

冒泡排序

冒泡排序算法的基本原理是:

立即学习“C语言免费学习笔记(深入)”;

    比较相邻元素并交换位置,使较小的元素向前移动。 重复步骤 1,直到没有元素需要交换位置为止。
<code class="C">void bubbleSort(int arr[], int n) {
  int i, j;
  for (i = 0; i < n - 1; i++) {
    for (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;
      }
    }
  }
}</code>

选择排序

选择排序算法的基本原理是:

    找到无序序列中的最小元素。 将此元素与第一个元素交换位置。 重复步骤 1 和 2,直到排序完毕。
<code class="C">void selectionSort(int arr[], int n) {
  int i, j, min_idx;
  for (i = 0; i < n - 1; i++) {
    min_idx = i;
    for (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;
  }
}</code>

插入排序

插入排序算法的基本原理是:

    将第一个元素视为有序序列。 将剩余元素逐个插入到有序序列中,保持有序性。
<code class="C">void insertionSort(int arr[], int n) {
  int i, j, key;
  for (i = 1; i < n; i++) {
    key = arr[i];
    j = i - 1;
    while (j >= 0 && arr[j] > key) {
      arr[j + 1] = arr[j];
      j--;
    }
    arr[j + 1] = key;
  }
}</code>

归并排序

归并排序算法采用分治策略:

    将序列分为两半。 递归对两半进行排序。 合并排序后的两半。
<code class="C">void mergeSort(int arr[], int l, int r) {
  if (l < r) {
    int m = l + (r - l) / 2;
    mergeSort(arr, l, m);
    mergeSort(arr, m + 1, r);
    merge(arr, l, m, r);
  }
}</code>

快速排序

快速排序算法也采用分治策略:

    选取一个基准元素。 将比基准元素小的元素都放在基准元素的左边,比基准元素大的元素都放在基准元素的右边。 递归对左右两部分进行快速排序。
<code class="C">void quickSort(int arr[], int l, int r) {
  if (l < r) {
    int pi = partition(arr, l, r);
    quickSort(arr, l, pi - 1);
    quickSort(arr, pi + 1, r);
  }
}</code>

相关推荐