c语言数集如何进行数据排序

avatar
作者
猴君
阅读量:0

在C语言中,对数据集进行排序可以使用多种算法,例如冒泡排序、选择排序、插入排序、快速排序等。以下是一些常见排序算法的示例代码:

  1. 冒泡排序
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. 选择排序
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. 插入排序
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 = j - 1;         }         arr[j + 1] = key;     } } 
  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);     } }  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); } 

以上代码示例中,arr 是待排序的数组,n 是数组的长度。对于快速排序算法,lowhigh 分别表示数组的起始和结束索引。

请注意,这些排序算法的时间复杂度不同,其中冒泡排序、选择排序和插入排序的平均时间复杂度为 O(n^2),而快速排序的平均时间复杂度为 O(n log n)。因此,在实际应用中,可以根据数据集的大小和特性选择合适的排序算法。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!