排序
唯(~平安
博客小萌新,请多指教
展开
-
第九章:排序算法:希尔排序&&基数排序
一:希尔排序 1.介绍. 希尔排序是插入排序的改进版,主要是为了解决当较小的数据出现在待排数组后一个一个向前插入这样比较多的循环次数。这个排序引入的步长的概念(step),用不断缩小step将数组分组,每次缩小为原来的一半,直到最后一次步长为一时,整个数组做了插入排序。 2.图片 流程如下: 3.步骤 3.1.初始化步长为元素个数的一半 3.2.开始循环,循环至步长为0 3.3开始做插入排序,具体在代码中详解 4.代码区 //希尔排序 void shellSort(int *a, int len) {原创 2021-03-03 20:53:08 · 326 阅读 · 1 评论 -
第八章:排序算法:选择排序&&插入排序
一.选择排序 1.介绍 选择排序是一个经典直观的算法,它是从待排序列中挑选最小的元素插入到已序数组的最后。 2.图片 3.方法&&步骤 3.1定义一个最小数据下标 3.2循环嵌套,起点下标作为已序数组的最后一个加一,(待排数组的开头) 3.3数据交换 4.代码 //打印函数 void print(int *a, int len) { for (int i = 0; i < len; i++) { printf("%d ", a[i]); } } //选择排序 void原创 2021-03-02 21:44:42 · 212 阅读 · 0 评论 -
新手上路,一起学算法。第二:归并排序
今天来和大家一起学习归并排序啦~废话不多说直接开搞! 1.归并排序介绍 归并排序也是属于经典算法之一,它采用的是分治思想(分治思想:将大的问题,转换成简单的,小的问题来解决)。 2.方法 它与合并算法不同的是,它是一个杂乱无章的数组。我们可以采用递归的思想将这个数组每次按两次分,直到每个子序列只有一个元素为止,因为在这里只有一个元素的序列可以必定是一个有序数组。最后在采用合并排序依次合并为有序数组。 3.图片区 分析图如下: 具体流程图如下: 4.具体代码如下 #include<stdio.h&原创 2021-02-20 21:40:44 · 189 阅读 · 0 评论