![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
编程鸟
编程使我快乐,编程使我富裕,编程使我幸福!我爱编程!
展开
-
初识数据结构
一、 基本概念 1、数据: 描述客观事物的符号,是计算机中可以操作的对象,能被计算机识别,并输入给计算机处理的符号集合。 2、数据元素: 是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。 3、数据项: 一个数据元素可以有若干个数据项组成。数据项是数据元素不可分割的最小单位。二、数据结构形式 数据结构是相互之间存在的一种或多种特定关系的数据元素的集合。数据结原创 2017-08-18 18:01:56 · 2840 阅读 · 0 评论 -
算法的复杂度
如何衡量一个算法的好与坏? 答案是:用时间复杂度和空间复杂度来衡量算法的好与坏。一、时间复杂度 时间复杂度是指当前问题的规模以某种单位从1增加到n时,解决这个问题的算法在执行时所耗费的时间也以某种单位由1增加到T(n),就称此算法的时间复杂度为T(n)。1、分析方法: (1)时间复杂度就是函数中基本操作所执行的次数。 (2)一般默认的是最坏时间复杂度,即分析最坏情况下所能执行的次数。原创 2017-08-20 17:46:49 · 4279 阅读 · 0 评论 -
顺序表的基本算法
#define _CRT_SECURE_NO_WARNINGS 1#ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<string.h> #define MAX 100 typedef int DataType转载 2017-08-22 08:50:02 · 3004 阅读 · 0 评论 -
直接插入排序
(1)概念: 直接插入排序(Insertion Sort),是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。(2)性能分析: 最差时间复杂度:O(n^2) 最优时间复杂度:O(n) 平均时间复杂度:O(n^2) 稳定性:稳定(3)步骤: 1)从第一个元素开始,该元素可以认为已被排序; 2)取出下一个元素,在已经排原创 2017-09-13 10:07:44 · 2247 阅读 · 0 评论 -
通讯录静态版本
contact.h#ifndef _CONTACT_H__#define _CONTACT_H__# include<stdio.h># include <stdlib.h>#define MAX 1000#define MAX_NAME 10#define MAX_SEX 5#define MAX_TELE 20#define MAX_ADDR 30typedef struct Peo转载 2017-08-23 22:18:26 · 2091 阅读 · 0 评论 -
通讯录动态版本
contact.h#ifndef _CONTACT_H__#define _CONTACT_H__# include<stdio.h># include <stdlib.h>#define DEFAULT_INC 2 //每次开辟的内存大小#define DEFAULT_SZ 3 //默认大小#define MAX 1000#define MAX_NAME 10#define MAX_转载 2017-08-23 22:33:02 · 2336 阅读 · 0 评论 -
通讯录文件版本
addressbook.h#define _CRT_SECURE_NO_WARNINGS 1#ifndef __ADDRESSBOOK_H__ //使用条件编译,防止重复引入头文件 #define __ADDRESSBOOK_H__ #include<stdio.h> #include<stdlib.h> #include<string.h> #define转载 2017-08-23 22:38:43 · 2240 阅读 · 0 评论 -
希尔排序
(1)概念: 希尔排序(Shell Sort),也称为递减增量排序算法,是插入排序的一种高速而稳定的改进版本。希尔排序是基于插入排序的以下两点性质而提出改进方法的: 1)插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率; 2)插入排序是低效的, 因为插入排序每次只能将数据移动一位。(2)性能分析: 平均时间复杂度:O(nlogn) 稳定性:不稳定(3)基本思想:原创 2017-09-14 11:23:58 · 2223 阅读 · 0 评论 -
直接选择排序
选择排序算法就是每一趟从待排序的记录中选出关键字最小(最大)的记录,顺序放在已排好序的子文件的最后(最前),直到全部记录排序完毕。常见的选择排序有直接选择排序(Selection Sort),堆排序(Heap Sort),平滑排序(Smooth Sort),笛卡尔树排序(Cartesian Sort),锦标赛排序(Tournament Sort),循环排序(Cycle)。1、直接选择排序 直...原创 2017-09-16 10:41:13 · 3069 阅读 · 1 评论