跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

c语言排序怎么实现

C 语言中实现排序可以使用多种算法,包括:冒泡排序:比较相邻元素,将较小的元素向前移动。选择排序:找到无序序列中的最小元素,并与第一个元素交换位置。插入排序:将元素逐个插入到已有序序列中。归并排序:分治排序,合并排序后的左右两半。快速排序:选取基准元素,将比基准元素小的元素放在左边,大的放在右边。 C 语言实现排序 排序是一种将数据集合中的元素按照特定顺序 排列 的过程。C 语言中可以使用各种排序算法来实现此目的。 冒泡排序 冒泡排序算法的基本原理是: 立即学习 “ C语言免费学习笔记(深入) ”; 比较相邻元素并交换位置,使较小的元素向前移动。 重复步骤 1,直到没有元素需要交换位置为止。
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; } } } }
选择排序 选择排序算法的基本原理是: jQuery缩略图网格排列大图切换代码 jQuery缩略图网格排列大图切换代码是一款将所有缩略图以网格形式排列,当用户点击某张缩略图时,会以九宫格切片组合动画的方式组合出高清大图,效果非常棒。 下载 找到无序序列中的最小元素。 将此元素与第一个元素交换位置。 重复步骤 1 和 2,直到排序完毕。
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; } }
插入排序 插入排序算法的基本原理是: 将第一个元素视为有序序列。 将剩余元素逐个插入到有序序列中,保持有序性。
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; } }
归并排序 归并排序算法采用分治策略: 将序列分为两半。 递归对两半进行排序。 合并排序后的两半。
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); } }
快速排序 快速排序算法也采用分治策略: 选取一个基准元素。 将比基准元素小的元素都放在基准元素的左边,比基准元素大的元素都放在基准元素的右边。 递归对左右两部分进行快速排序。
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); } }

相关文章