![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
chencangui
公棕号:陈大发随笔,程序员陈师兄、8年大厂程序员经历。csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战
展开
-
冒泡排序
#includevoid BubbleSort(int k[],int n){ int i,j,temp; int flag = 1; for( i=0; i<n-1; i++) { flag = 0; for(j=n-1; j>i;j--) { if(k[j-1] > k[j]) { temp = k[j-1]; k[j-1] = k[j];原创 2015-03-26 20:36:45 · 432 阅读 · 0 评论 -
LinkHashMap解析
转自http://uule.iteye.com/blog/1522291 1. LinkedHashMap概述:LinkedHashMap是HashMap的一个子类,它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用LinkedHashMap。 LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提转载 2015-04-30 16:11:08 · 900 阅读 · 0 评论 -
划分子网
用自己的语言总结一下书本上的内容,更加容易理解一点,也便于复习。划分子网是从主机号借用若干位作为子网号,于是两级IP地址在自己单位内部就变成了三级IP地址。子网掩码:为了让数据报到了目的路由器之后能够转发给她的子网。如果一个网络不划分子网,他还是要使用子网掩码(默认子网掩码),默认子网掩码可以便于查找路由表。A类地址的默认子网掩码是255.0.0.0B类地址的默原创 2015-03-22 10:24:53 · 928 阅读 · 0 评论 -
C语言数据结构中链队列细节
近来在做操作系统实验,用到数据结构中的内容,发现之前学的东西没真正弄懂,遇到了一个问题。在这个存储结构中第一个Queue是什么,第二个又是什么搞不懂,typedef struct Queue { int user; int nun; struct Queue *next; }Queue,*QueuePtr解释如下:Queue是通过typedef定义的一个声明名 以后你声明这原创 2014-12-16 22:30:45 · 546 阅读 · 0 评论 -
二叉排序树
//二叉排序树又称为二叉查找树,它或者是一棵空树,或者是具有下列性质的二叉树://若它的左子树不空,则左子树上所有结点的值均小于它的根结构的值。//若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值。//它的左右字数也分别是二叉排序树//二叉排序树查找:/* 二叉树的二叉链表结点结构定义 */typedef struct BiTNode /* 结点结构 */{原创 2015-03-31 12:16:54 · 695 阅读 · 0 评论 -
有序查找的三种算法
#includeint Binary_Search(int *a,int n, int key){ int low,high,mid; low = 0; high = n; while(low<=high) { mid = low +(high-low)*(key-a[low])/(a[high] - a[low]);//插值查找 //mid = (low+high)/2原创 2015-03-27 21:50:46 · 2547 阅读 · 0 评论 -
归并排序(递归实现和迭代实现)
//首先是递归实现的方式#include#define MAXSIZE 10//实现归并,并把数据都放在list1里面void merging(int *list1,int list1_size,int *list2,int list2_size){ int i,j,k,m; i = j = k = 0; int temp[MAXSIZE]; while(i<list1原创 2015-03-27 17:55:00 · 21180 阅读 · 4 评论 -
希尔排序
//希尔排序是对直接插入排序的该进,直接插入排序每次的j只增减1,//只要把1改成gap,每次gap=gap/3 + 1;直至gap不大于1,为止,这样的//原来的直接插入排序就成了希尔排序#includevoid InsertSort(int k[],int n){ int i,j,temp; int gap = n; do{ gap = gap/3 + 1; for(i原创 2015-03-26 23:01:30 · 430 阅读 · 0 评论 -
简单选择排序
#includevoid SelectSort(int k[],int n){ int i,j,min,temp; for(i=0; i<n-1;i++) { min = i; for(j=i+1; j<n; j++) { if(k[j]<k[min]) min = j; } if(min!=i) { temp = k[min];原创 2015-03-26 20:37:22 · 675 阅读 · 0 评论 -
堆排序详解
#include//交换函数void swap(int k[], int i, int j){ int temp; temp = k[i]; k[i] = k[j]; k[j] = temp;}//对顺序表k进行堆排序void HeapAdjust(int k[],int s,int n){ int i,temp; temp = k[s]; //之所以从2s开始是因原创 2015-03-27 14:19:45 · 894 阅读 · 0 评论 -
直接插入排序
//从第二个元素开始,跟第一个比较,如果比第一个小,那么将这个//数用temp保存起来,这个数的下标为i,将j赋值为i-1,在i前面的数//如果比下标为i的大的话,后移,因为这是i已经保存了(在temp中)//所以不用担心丢失,这样到前面的不符合的为止,最后将temp存回去#includevoid InsertSort(int k[],int n){ int i,j,temp;原创 2015-03-26 21:51:08 · 487 阅读 · 0 评论 -
快速排序
快速排序源代码:#include#define MAX_LENGTH_INSERT_SORT 7 void swap(int k[], int low,int high) //交换函数 { int temp; temp = k[low]; k[low] = k[high]; k[high] = temp; } //交换顺序表L中子表的记录,使枢轴记录到位,并返回其原创 2015-03-26 15:57:43 · 615 阅读 · 0 评论