数据结构C语言
Mohicannnnnnnn
这个作者很懒,什么都没留下…
展开
-
数据结构(一):顺序表的基本操作 C语言
顺序表 头文件: Sqlist.h#include<stdio.h>#include<stdlib.h>#define SIZE 15#pragma oncetypedef struct Sqlist{ int elem[SIZE]; int usedsize; //有效长度} Sqlist, *Psqlist;void InitSqli...原创 2018-09-26 00:46:12 · 909 阅读 · 1 评论 -
排序1: 冒泡排序及其优化
一. 概述(1)冒泡 排序是一种 排序是一种 排序是一种 交换 排序。 交换排序:数据两两比较,交换不满足次序要求的数据,直到整组数据都满足排序要求。 二.算法思想 假设有一个大小为 N 的无序序列。以升序冒泡排序为例,冒泡排序就是要每趟排序过程中通过两两比较相邻元素,将小的数字放到前面,大的数字放在后面。 假设有一个无序序列: 4,3,1,2,5 ...原创 2018-12-26 19:32:34 · 188 阅读 · 0 评论 -
排序2:直接插入排序
一.概述1.插入排序: 每一趟,将待排序的序列记录,根据待排序关键字大小插入到有序队列合适位置当中,直到所有数列按照大小要求完成。2.直接插入排序:最简单的一种插入排序,每次将待排序的的数字直接插入到整个序列的合适位置当中。二.算法思想将第 i个记录插入到前面 i-1(此处设位 j )个已排序的记录中 的记录中 ,将 i 记录的关键字 temp,顺次与前面 ,已经记录的关键字比 较...原创 2018-12-27 11:09:33 · 722 阅读 · 0 评论 -
排序3:简单选择排序
一,概述(1)简单选择排序是一种选择排序。(2)选择排序:每趟从待排序的记录中选出关键字最小的记录,与当前位置的数值进行交换,直到所有数据有序排列完成。 二。算法思想 (1)从待排序序列中,找到关键字最小的元素;(2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;(3)从余下的N - 1个元素中,找出关键字最小的元素,重复(1),(2)步,到结束...原创 2018-12-27 12:14:14 · 231 阅读 · 0 评论 -
排序4:希尔排序
一.概述希尔排序: 又称缩小增量排序,对一组数据按照间隔分组后,对每一组数据进行 【直接插入排序】,它也是插入排序的一种—加强版本。 二.算法思想(1)间隔 Gap计算 : 设一组无序数列的长度为 len ,Gap也就是说这组数据分几组。设gap[] = {gap1,gap2,gap….,1}gap1 = len /2 ; 求整gap2 = gap1 /2 ; 继续往后...原创 2018-12-27 16:43:49 · 288 阅读 · 0 评论 -
数据结构:顺序表的基本操作: 增 删 查 改 扩容 动态分配内存
顺序表: 线性表 /*From:mohicanData:2018/12/26*//*SXList.h*/#include<stdio.h>typedef struct SXList{ int *elem; //指针 int usedsize; //有效元素个数 int length; //总长度}SXList,*PList;...原创 2018-12-26 12:26:11 · 311 阅读 · 0 评论 -
排序5:快速排序 (递归)
一.概述(1)快速排序是一种交换排序,通过一趟排序将要排序的数据分割成独立的两部分: 分割点边都是比它小的数,右边都是比它大的数。它由C. A. R. Hoare在1962年提出。二.算法思想1)通过一趟排序将要排序的数据分割成独立的两部分:分割点边都是比它小的数,右边都是比它大的数 (2)按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。...原创 2019-01-11 17:23:23 · 268 阅读 · 0 评论