
数据结构与算法
昨天与今天
JAVA
展开
-
直接插入排序算法
#include /**方法一,只需掌握此方法即可**/void insertSort(int a[],int n){ int i,j,k; for(i=1;i<=n;i++){//待排序的数据 k = a[i];//取出一个数据来排序 for(j=i-1;j>=0&&k<a[j];j--){ a[j+1]=a[j];//移动的条件:待排序的数据小于已排序的最大数据,即a原创 2013-08-20 22:48:27 · 761 阅读 · 0 评论 -
希尔排序算法
#include void output_array(int data[], int n) { int i; for(i = 0; i < n; i++) printf("%d ", data[i]); printf("\n"); } void swap(int *a, int *b) { int x; x =原创 2013-08-20 22:57:21 · 563 阅读 · 0 评论 -
快速排序算法
#include void qsort(int s[], int l, int r){ int i, j, x; if (l < r) { i = l; j = r; x = s[i];//基准元素 while (i < j) { while(i x) j--; /原创 2013-08-20 22:55:57 · 617 阅读 · 0 评论 -
二叉树遍历:已知中序和后序,求前序
根据输入的二叉树中序和后序序列来构造该二叉树,输出该二叉树的前序序列和该二叉树的度为2的结点的个数并能判断该二叉树是否为二叉排序树(若是输出Yes;否则输出No)。 #include #include #include void exit(int);#define MAX 1000typedef struct node{ char d; struct原创 2013-08-21 23:48:57 · 1624 阅读 · 0 评论 -
二叉树遍历:已知前序和中序,求后序
#include #include #include #define MAX 1000typedef struct node{ char d; struct node *lchild,*rchild;}Tnode;void MK(char in[],int is,int ie,char pre[],int pres,int pree,Tnode **r){ int i;原创 2013-08-24 23:17:23 · 1408 阅读 · 0 评论 -
根据输入的数据,建立二叉排序树,并求先、中、后序遍历
#include #include #define MAX 1000typedef struct node{ int d; struct node *lchild,*rchild;}Tnode;void insertTree(Tnode **r,int d){ if(*r==NULL){//如果树为空,则建树 *r=(Tnode *)malloc(sizeof(Tnode原创 2013-08-25 23:02:38 · 6424 阅读 · 0 评论 -
归并排序算法
#include void merge(int is1[],int left,int last,int mid) { int i=left,j=mid+1,k=left,is2[1000]; while(i<=mid&&j<=last) if(is1[i]<=is1[j]) // 此处为排序顺序的关键,用小于表示从小到大排序。实际上就是把is1分成两个数组,第一从left到mi原创 2013-08-20 22:56:46 · 571 阅读 · 0 评论 -
冒泡排序算法
//冒泡排序#include void sort(int d[],int n){ int i,j,temp,exchange; for(i=0;i<=n;i++){ exchange = 0; for(j=n-1;j>=i;j--){ if(d[j+1]<d[j]){ exchange = 1; temp = d[j+1]; d[j+1]=d[j];原创 2013-08-20 22:53:49 · 483 阅读 · 0 评论