- 博客(7)
- 收藏
- 关注
原创 排序算法之直接选择排序
选择排序基本思想:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。直接选择排序基本思想:1、在元素集合array[i] – array[n-1]中选择关键码最大(小)的数据元素。2、若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个)元素交换,3、在剩余的array[i] – array[n-2]...
2020-01-31 17:57:16 218
原创 排序算法之希尔排序
希尔排序希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数gap1,把待排序文件中所有记录分成gap1个组,所有距离为gap1倍数的记录分在同一组内,并对每一组内的记录进行排序。然后,取第二个增量gap2(<gap1),重复上述分组和排序的工作。当gap= 1时,所有记录在同一组内排好序。...
2020-01-31 14:21:57 214
原创 数据结构之带头双向循环链表(源代码)
List.h//带头双向循环链表#ifndef __LIST_H__#define __LIST_H__#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<malloc.h>typedef int LTDataType;typedef struct Lis...
2020-01-30 16:27:04 187
原创 数据结构之无头单向非循环链表(源代码)
SList.h//无头单向非循环链表#ifndef __SLIST_H__#define __SLIST_H__#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<malloc.h>typedef int SLTDataType;typedef struc...
2020-01-30 16:13:37 161
原创 排序算法之直接插入排序
排序算法之直接插入排序直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插完为止,得到一个新的有序序列。步骤:当插入第i(i >= 1)个元素时,前面的array[0],array[1],… ,array[i - 1]已经排好序,此时用array[i]的排序码与array[i - 1],array[i -...
2020-01-30 15:58:42 184
原创 关键字static
关键字static在C语言中static是用来修饰变量和函数的。1、修饰局部变量:static改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。即延长了变量的生命周期,但未改变作用域。例:#include <stdio.h>#include <stdlib.h>//代码一//结果为:1 1 1 1 1 1 1 1 1 1v...
2020-01-28 16:47:36 85
原创 堆排序
堆排序算法思想:升序用大根堆,降序用小根堆。其中每个结点的值都大于其左孩子和右孩子结点的值,称之为大根堆;每个结点的值都小于其左孩子和右孩子结点的值,称之为小根堆。以降序为例:1、构造初始堆。将给定无序序列构造成一个小根堆,则此时这组无序序列中值最小的元素处于堆顶位置。2、将堆顶元素与末尾元素进行交换,使末尾元素最小。然后继续调整堆,再将堆顶元素与末尾元素(该末尾元素实际上是序列中倒数...
2020-01-27 18:09:14 3140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人