📜  按升序排列数字 - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:39:48.348000             🧑  作者: Mango

按升序排列数字 - C 编程语言

在 C 编程语言中,有多种方法来实现按升序排列数字的算法。本文将介绍其中最常见的几种方法,并且提供相应的 C 代码示例供程序员参考。

冒泡排序算法

冒泡排序算法是最常见的排序算法之一,其原理是将相邻的元素两两比较,满足条件则交换位置。重复进行多次,直到没有需要交换的元素。以下是 C 语言实现的冒泡排序算法代码片段:

void bubble_sort(int arr[], int n)
{
   int i, j, temp;
   for(i = 0; i < n-1; i++)
   {
       for(j = 0; j < n-i-1; j++)
       {
           if(arr[j] > arr[j+1])
           {
               temp=arr[j];
               arr[j]=arr[j+1];
               arr[j+1]=temp;
           }
       }
   }
}
插入排序算法

插入排序算法是另一种简单且易于理解的排序算法,其原理是将一个待排序序列插入到一个已经排好序的序列中。以下是 C 语言实现的插入排序算法代码片段:

void insertion_sort(int arr[], int n)
{
   int i, key, j;
   for (i = 1; i < n; i++)
   {
       key = arr[i];
       j = i - 1;
       while (j >= 0 && arr[j] > key)
       {
           arr[j + 1] = arr[j];
           j = j - 1;
       }
       arr[j + 1] = key;
   }
}
快速排序算法

快速排序算法是最常用的排序算法之一,它的核心思想是通过分治法将一个大问题分解成小问题,进而递归地解决每个小问题。以下是 C 语言实现的快速排序算法代码片段:

int partition(int arr[], int low, int high)
{
   int pivot, i, j, temp;
   pivot = arr[high];
   i = (low - 1);
   for (j = low; j <= high- 1; j++)
   {
       if (arr[j] <= pivot)
       {
           i++;
           temp = arr[i];
           arr[i] = arr[j];
           arr[j] = temp;
       }
   }
   temp = arr[i + 1];
   arr[i + 1] = arr[high];
   arr[high] = temp;
   return (i + 1);
}
void quick_sort(int arr[], int low, int high)
{
   if (low < high)
   {
       int pi = partition(arr, low, high);
       quick_sort(arr, low, pi - 1);
       quick_sort(arr, pi + 1, high);
   }
}

以上是按升序排列数字的三种常见排序算法的 C 语言实现示例。根据实际情况,选择恰当的排序算法会显著提高程序效率。如果需要更高效的排序算法,可以考虑使用归并排序、堆排序等高级排序算法。