数据结构
qian_xia_er
学无止境!!!
展开
-
交换排序之冒泡排序及快速排序的实现
在数据结构里面,交换排序一般又包括两种排序方式:一、冒泡排序;二、快速排序一、冒泡排序在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒#define MAXSIZE 20 //默认定义数据大小为20#define T inttypedef T Seqlist[MAXSIZE];void sw...原创 2018-04-22 15:37:27 · 259 阅读 · 0 评论 -
选择排序之简单选择排序与堆排序
在数据结构里面,选择排序又简单的分为简单选择排序及堆排序,都为不稳定排序一、简单选择排序在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换(这里采用最小值);然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。简单选择排序的实现#define MAXSIZE 20 //默...原创 2018-04-22 16:14:56 · 477 阅读 · 0 评论 -
归并排序的实现及测试
归并(Merge)排序法:将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列 在执行过程中一直调用一个划分过程,直到子序列为空或者只有一个元素为止,共需log2n次递归,在归并的过程中依次归并长度为2、4…..的子序列,直到整个序列有序归并图示 归并的实现#define MAXSIZE 20 ...原创 2018-04-22 16:40:05 · 525 阅读 · 0 评论 -
基数排序的实现及测试
基数排序过程无须比较关键字,而是通过“分配”和“收集”过程来实现排序。它们的时间复杂度可达到线性阶:O(n),是一种稳定排序基数排序的实现(用数组的方式,还可以通过链表实现)#pragma once //基数排序#include<iostream>using namespace std;#include<stdio.h>#include<s...转载 2018-04-22 17:13:00 · 414 阅读 · 0 评论 -
图的简单认识及邻接矩阵及邻接表存储
图 由有穷非空顶点集V和边E组成。每一条边就是一个点对(v,w)。图中的数据元素称为顶点。如果点对是有序的(每一个点的下一个点是固定的),那么图被称为有向图,否则就是无向图。与图的边相关的数值叫做权值,带权的图称为网(network).与图有关的简单概念: (1)如果图中含有一条从一个顶点到他自身的边(v,v),那么路径v叫做环。 (2)简单路径是指路径上所有的点都是互异的,但是第一个和最...原创 2018-05-05 18:36:33 · 528 阅读 · 0 评论 -
图的深度优先遍历
图的遍历主要有两种方式:深度优先遍历(Depth_First_Search)深度优先遍历和广度优先遍历(Breadth_First_Search)。图的深度优先遍历类似于树的先序遍历,图的广度优先遍历类似于树的层次遍历。这里用图的深度优先遍历实现图的遍历(基于无向无权图的邻接表存储结构)#pragma once#include<stdio.h>#include<mal...原创 2018-05-05 18:59:37 · 1539 阅读 · 0 评论