算法
常见的算法
爱写代码的马良
强者不屈于命运。
展开
-
链表面试题
常见链表面试题原创 2022-01-26 17:02:39 · 816 阅读 · 0 评论 -
5.C语言快速排序
常见算法时间复杂度快速排序基本思想基本思想:每步将一个待排序的记录按其关键字的大小插到前面已经排序的序列中的适当位置,直到全部记录插入完毕为止。优点:稳定,快;缺点:比较次数不一定,插入后的数据移动多,特别是当数据总量庞大的时候,但用链表可以解决这个问题。代码实现void printArray05(int array[], int len){ int i = 0; for(i=0; i<len; i++) { printf("%d ", array[i]); .原创 2021-08-28 12:25:13 · 398 阅读 · 0 评论 -
4.C语言希尔排序
常见算法时间复杂度希尔排序基本思想基本思想:希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。优点:快,数据移动少缺点:不稳定,增量的取值无确切答案,只能凭经验来取代码实现#include "stdio.h"#include "stdlib.h"#include "string.h"void println(int array[], int len){ int.原创 2021-08-22 21:51:32 · 99 阅读 · 0 评论 -
3.C语言选择排序
常见算法时间复杂度选择排序基本思想基本思想:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。优点:移动数据的次数已知(n-1 次);缺点:比较次数多。代码实现#include "stdio.h"#include "stdlib.h"#include "string.h"void printArray01(int array[], int len){ int i = 0; for(i=0; i<l..原创 2021-08-21 22:32:36 · 85 阅读 · 0 评论 -
2.C语言插入排序
常见算法时间复杂度插入排序基本思想基本思想:每步将一个待排序的记录按其关键字的大小插到前面已经排序的序列中的适当位置,直到全部记录插入完毕为止。优点:稳定,快;缺点:比较次数不一定,插入后的数据移动多,特别是当数据总量庞大的时候,但用链表可以解决这个问题。代码实现#include <stdio.h>#include <stdlib.h>int printfArray03(int array[], int len){ int i; for(i =.原创 2021-08-21 22:21:30 · 81 阅读 · 0 评论 -
1.C语言冒泡排序
冒泡排序基本思想:1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3.针对所有的元素重复以上的步骤,除了最后一个。4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。优点:比较简单,空间复杂度较低,是稳定的缺点:时间复杂度太高,效率不好#include "stdio.h"#include "stdlib.h"#include "string.h"v.原创 2021-08-21 22:03:29 · 97 阅读 · 0 评论