
算法,排序
wang yang
用心走在C的道路上—— Romantic_c
展开
-
归并排序算法(C语言)
归并排序: 利用将两个的有序数据序列合并成一个新的有序数据序列,在如何分成两个有序数据的问题下,采用分治算法。时间复杂度:O(n*logn) 空间复杂度:O(n) 是否稳定: 稳定原创 2018-04-11 14:03:10 · 7557 阅读 · 0 评论 -
冒泡排序函数及其编程思想
冒泡排序函数实现及其思想原创 2017-10-18 22:39:10 · 3169 阅读 · 0 评论 -
计数排序(C语言)
计数排序: 计数排序是一个非基于比较的排序算法。时间复杂度:O(n) 空间复杂度:O(n) 是否稳定:不稳定 适用场合:数据很多,且较集中原创 2018-04-11 16:13:57 · 3889 阅读 · 1 评论 -
快速排序算法(C语言)
快排: 时间复杂度:O(n^2) 空间复杂度:O(log n) 是否稳定:不稳定 适用场合:数据较多且杂乱原创 2018-04-11 20:53:55 · 606 阅读 · 0 评论 -
堆排序
堆排序 堆排序:是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。 是否稳定:不稳定 时间复杂度:O(N*lgN) 空...原创 2018-07-29 12:55:30 · 327 阅读 · 0 评论 -
选择排序
选择排序 选择排序是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 算法稳定性:不稳定 时间复杂度:O(N^2) 空间复杂度:O(1)#include <stdio.h>#include <assert.h>void...原创 2018-07-27 19:06:23 · 400 阅读 · 0 评论 -
插入排序
插入排序 插入排序:有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序。插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序 算法稳定性:稳定 时间复杂度:O(N^2) 空间复杂度:O(1) 适用场合:数据较少,接近有序#...原创 2018-07-28 12:26:03 · 360 阅读 · 0 评论 -
希尔排序
希尔排序 希尔排序是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 算法稳定性:不稳定 时间复杂度:O(N^2) 平均时间复杂度:O(N^1.3) 空间复杂度:O(1) 适用场景:优于直接插入排序,是直接插入排序的改进算法#include <stdio.h>v...原创 2018-07-28 14:12:07 · 323 阅读 · 0 评论