![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
予我欢喜
这个作者很懒,什么都没留下…
展开
-
八大排序算法之--------插入排序
什么是插入排序?在一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,即为插入排序。插入排序的基本思想:①将数据分为两部分,一部分用来存储有序数据,另一部分为无序数组;②每次依次从无序数组中选取一个数据,与有序数据比较,将其插入到有序数组中合适的位置;③重复第②步骤,直到无序数组中不含有数据。此时数组有序。插入排序的C代码:void Inse...原创 2019-01-12 11:46:41 · 124 阅读 · 0 评论 -
八大排序算法之--------冒泡排序及其优化
什么是冒泡排序?冒泡排序,通俗来说即为“沉”下去,即按照要求的条件将最大或最小的放在最后;冒泡排序的基本思路是两两比较,将大的或小的放在后面。冒牌排序的si...原创 2019-01-13 20:41:31 · 139 阅读 · 0 评论 -
八大排序算法之--------选择排序
什么是选择排序?它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。基本思想:第1趟,在待排序记录r[1]—r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]—r[n]中选出最小的记录,将它与r[2]交换;以此类推,使全部有序。(每次假定r[i]最小)C代码:void SelectSort(int...原创 2019-01-13 22:47:44 · 101 阅读 · 0 评论 -
八大排序算法之-------快速排序及其优化 及其应用寻找第K小元素
什么是快速排序?顾名思义,快速派速是一种速度比较快,即时间复杂度较低的一种排序方法,其适用于数据混乱无章的情况,在数据完全有序的情况下,快速排序比较糟糕。算法思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小;然后再次按照本方法对两部分再次排序,通过递归;最后数据全部有序。C代码:int partition(int a[] ,int lo...原创 2019-01-14 12:35:06 · 254 阅读 · 0 评论 -
二分查找
什么是二分查找:二分查找的思想:C代码(非递归法): int Search(int*p,int left,int right,int val){ int pos = -1; while(left <= right) { int mid = (right - left + 1)/2 + left; //mid=(right+left)/2 if(val &l...原创 2019-01-14 20:17:38 · 183 阅读 · 0 评论 -
八大排序之-----堆排序
什么是堆排序?堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它也是不稳定排序什么是堆?堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:堆排序基本思想:将待排序序列构造成一个大顶堆;此时,整个序列的最大值就是堆顶的根节点将其与末尾元素进行交换,此时末尾就为最大...原创 2019-01-14 20:57:21 · 115 阅读 · 0 评论 -
C语言文件操作库函数
创建和打开函数:FILE fopen(const char * path,const char mode);fopen()实现打开指定文件filename,其中mode为打开模式|标志含义r,rb以只读形式打开,若文件不存在 ,返回错误w,wb以只写方式打开。如果文件不存在,则创建该文件;如果文件存在,则覆盖原文件a,ab以追加方式打开。如果文件不存在...原创 2019-03-27 17:35:49 · 2576 阅读 · 0 评论 -
C++八大排序复习
所有排序算法均从小到大排序**一冒泡排序:**冒泡排序的思想就是两两比较,把最大的沉下去;重复沉入最大数据。直到剩下最后两个数据进行比较。void BubbleSort(int *ar, int len){ int flag = 0; int i = 0; int j = 0; for(i=0; i<len-1; ++i) { for(j=0; j<len-i-1;...原创 2019-08-01 13:49:08 · 104 阅读 · 0 评论