![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
一些算法实现
yfstop
这个作者很懒,什么都没留下…
展开
-
排序算法-选择排序
文章目录介绍排序效果实现介绍选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此类推,直到所有元素均排序完毕。排序效果实现#include <stdio.h>#include <stdlib.h>static void RandInitArray(int *arr, int num);static void原创 2020-09-30 09:41:24 · 126 阅读 · 0 评论 -
排序算法-堆排序
文章目录介绍步骤排序效果实现介绍堆积排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆性质:即子结点的键值或索引总是小于(或者大于)它的父节点。步骤略排序效果实现#include <stdio.h>#include <stdlib.h>static void RandInitArray(int *arr, int num);static void PrintArray(int *arr, int nu原创 2020-09-30 09:40:55 · 82 阅读 · 0 评论 -
排序算法-快速排序
文章目录介绍步骤排序效果实现介绍快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可能性。步骤从数列中挑出一个元素,称为 “基准”(pivot),重新排序数列,所有元素比基准值原创 2020-09-30 09:40:09 · 54 阅读 · 0 评论 -
算法-大数阶乘
对于比较小的数n,可以通过递归或循环将计算结果保存为整形。但是如果n很大的时候,比如1000,那么n!肯定超出整形数据所能表示的范围。因此必须采用其他方法解决。一般是采用数组模拟。实现代码如下:#include <stdio.h>#include <stdlib.h>#include <math.h>#define STORE_STEP_SIZE 100static int s_store_size = 0;#define EXTENT_STORE(s)原创 2020-09-30 09:35:27 · 109 阅读 · 0 评论 -
排序算法-冒泡排序
文章目录介绍步骤排序效果实现排序方法比较介绍冒泡排序(Bubble Sort)一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作重复地进行直到没有再需要交换。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续原创 2020-09-30 09:41:54 · 158 阅读 · 0 评论