Coding
calkee
这个作者很懒,什么都没留下…
展开
-
使用C语言打印月历
使用C语言打印月历打印日历应该是程序员入门时候的一个基础练习。打印一年的日历有许多不同的实现,我这里提一个可以实现的方法。首先需要确定该年是闰年还是平年,闰年的二月是29天,全年是366天;平年二月是28天,全年365天。还需要确定该年的每一天是星期几。从0001年1月1日是星期一开始,该值可以通过使用该年到元年的总天数模7来求得。最后考虑怎样输出日历,可以先将日历存储在一个二维数组里面,也可以直接原创 2016-01-16 16:39:51 · 22319 阅读 · 5 评论 -
快速排序算法的C语言实现
快速排序算法是C/C++库所使用的标准排序算法,用于对中等长度的数组进行排序。快速排序算法的原理是通过找出一个数,使得这个数左边的所有数字都小于它,右边的所有数字都大于它。通过不断地递归而排序整个数组。快速排序算法的实现如下:代码块#include <stdio.h>int sort(int a[] , int low , int high) { int temp = a[low];原创 2016-02-11 09:21:12 · 841 阅读 · 0 评论 -
AVL树-C实现
我一直对平衡二叉树感兴趣,数据结构和算法妙趣横生,仔细体会,对编程莫大裨益。花了一个星期的业余时间,初步写完了AVL Tree,目前还在继续查找Bug中。 AVL树使用平衡因子来决定是否对树进行旋转。对树进行旋转有四种情况。但首先是某个平衡因子的值达到了2或者-2,再根据该节点的子节点的平衡因子是1还是-1,进行相应的旋转。 关于AVL的一些特性,可以参考国外教材《算法和数据结构 C语言描述》这原创 2016-08-02 11:20:44 · 586 阅读 · 0 评论 -
快速排序与快速选择
快速排序算法就是将一列无序的数字排成有序,通过使用分治法,快速排序能够在O(nlog(n))的时间内完成,相比堆排序等其他也是O(nlog(n))复杂度的排序算法,快速排序的基数更小,因此效率也就越高。快速选择是在快速排序的基础上,在一列无序数中快速地计算出第K大的数字,同样使用分治法。快速选择可以避免许多不必要的排序工作。以下是快速排序的算法实现:快速排序通过a<b,b<c则a &l...原创 2018-04-01 13:20:35 · 1188 阅读 · 0 评论