![](https://img-blog.csdnimg.cn/20200710003359991.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
算法
折竹丶
本人自我评分可以打五十分吧,时而感觉亢奋学习颇有兴趣、时而感觉颓废不堪坐丧成业,起步之初领先于诸同学,然却处处落后,忧心忡忡,未能坚持到底。本人之发展在乎于彻底革命再造自我,寻到兴趣之所在,调取心中之积极,于自身不断完善之。
展开
-
bsearch()二分法查找
C 库函数void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *))对nitems对象的数组执行二分查找,base指向进行查找的数组,key指向要查找的元素,size指定数组中每个元素的大小。 数组的内容应根据compar所对应的比较函数升序排序。 下面是 bsearch() 函数的声明。 void *b...原创 2020-07-12 13:19:58 · 12635 阅读 · 0 评论 -
C语言:再也不写排序算法
在C语言一个小项目里面,大多数情况我们都是选择自己造车轮,比如需要自己写一个排序算法或者链表,这样的过程在学习的时候动手是充满意义的,但是到了大项目之中,用标准库和别人封装好的算法不香吗?倘若盖一栋楼之前,连每一个砖块都需要我们挖土烧砖,那么这是多么可怕巨大的工程量。原创 2020-07-12 13:12:16 · 12292 阅读 · 0 评论 -
算法:C描述-快速排序
快速排序 在区间中随机挑选一个元素作基准,将小于基准的元素放在基准之前,大于基准的元素放在基准之后,再分别对小数区与大数区进行排序。 过程演示: 迭代法 typedef struct _Range { int start, end; } Range; Range new_Range(int s, int e) { Range r; r.start = s; r.end = e; return r; } void swap(int *x, int *y原创 2020-07-12 12:54:07 · 12219 阅读 · 0 评论 -
算法:C描述-归并排序
归并排序 把数据分为两段,从两段中逐个选最小的元素移入新数据段的末尾。 可从上到下或从下到上进行。 过程演示: 迭代法 int min(int x, int y) { return x < y ? x : y; } void merge_sort(int arr[], int len) { int* a = arr; int* b = (int*) malloc(len * sizeof(int)); int seg, start; fo原创 2020-07-12 12:51:24 · 12211 阅读 · 0 评论 -
算法:C描述-希尔排序
希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的: 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率 但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位 过程演示: void shell_sort(int arr[], int len) { int gap, i, j; int temp; for (gap = len &g原创 2020-07-12 12:48:00 · 12262 阅读 · 0 评论 -
算法:C描述-插入排序
插入排序 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到 {\displaystyle O(1)} {\displaystyle O(1)}的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后 挪位,为最新元素提供插入空间。 过程演示: 实例 void insertion_sort(in.原创 2020-07-12 12:45:23 · 12177 阅读 · 0 评论 -
算法:C描述-选择排序
选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 过程演示: 实例 void swap(int *a,int *b) //交換兩個變數 { int temp = *a; *a = *b; *b = temp; } void selection_sor原创 2020-07-12 12:42:32 · 12212 阅读 · 0 评论 -
算法:C描述-冒泡排序
冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。 过程演示: #include <stdio.h> void bubble_sort(int arr[], int len) { int i, j, temp; for (i = 0; i < len - 1; i++) { for (j = 0; ...原创 2020-07-11 23:35:13 · 12207 阅读 · 0 评论 -
算法题目
#include <stdio.h> #include <time.h> #include <stdlib.h> //交换 void swap(int *x,int *y) { int tep=*x; *x=*y; *y=tep; } //排序 int sort(int *arr,int len) { int tmp; ...原创 2019-07-08 16:25:03 · 12066 阅读 · 0 评论