如何用C语言编写实现九大排序算法的实例代码?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2166个文字,预计阅读时间需要9分钟。
直接插入排序+将数组分为两部分,一个是有序部分,一个是无序部分。从无序部分中依次取出元素插入到有序部分中。这个过程就是遍历有序部分,实现起来比较简单。
直接插入排序
将数组分为两个部分,一个是有序部分,一个是无序部分。从无序部分中依次取出元素插入到有序部分中。过程就是遍历有序部分,实现起来比较简单。
#include <stdio.h> void insertion_sort(int arr[], int array_length) { for (int i = 0; i < array_length; ++i) { int data = arr[i]; int j = 0; while (arr[j] < arr[i]) { j++; } for (int k = i; k >= j + 1; k--) { arr[k] = arr[k - 1]; } arr[j] = data; } } void print_array(int arr[], int array_length) { for (int i = 0; i < array_length; ++i) { printf("%d ", arr[i]); } printf("\n"); } int main() { int arr[7] = {8, 2, 6, 0, 5, 7, 4}; insertion_sort(arr, 7); print_array(arr, 7); return 0; }
折半插入排序
折半插入再直接插入上有改进,用折半搜索替换遍历数组,在数组长度大时能够提升查找性能。其本质还是从无序部分取出元素插入到有序部分中。
本文共计2166个文字,预计阅读时间需要9分钟。
直接插入排序+将数组分为两部分,一个是有序部分,一个是无序部分。从无序部分中依次取出元素插入到有序部分中。这个过程就是遍历有序部分,实现起来比较简单。
直接插入排序
将数组分为两个部分,一个是有序部分,一个是无序部分。从无序部分中依次取出元素插入到有序部分中。过程就是遍历有序部分,实现起来比较简单。
#include <stdio.h> void insertion_sort(int arr[], int array_length) { for (int i = 0; i < array_length; ++i) { int data = arr[i]; int j = 0; while (arr[j] < arr[i]) { j++; } for (int k = i; k >= j + 1; k--) { arr[k] = arr[k - 1]; } arr[j] = data; } } void print_array(int arr[], int array_length) { for (int i = 0; i < array_length; ++i) { printf("%d ", arr[i]); } printf("\n"); } int main() { int arr[7] = {8, 2, 6, 0, 5, 7, 4}; insertion_sort(arr, 7); print_array(arr, 7); return 0; }
折半插入排序
折半插入再直接插入上有改进,用折半搜索替换遍历数组,在数组长度大时能够提升查找性能。其本质还是从无序部分取出元素插入到有序部分中。

