![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构算法C语言
C语言实现
不忘初心_悟空
在职猿,北航路。
莫问前路凶吉,但求落幕无悔。
展开
-
数据结构学习网站
http://www.cnblogs.com/skywang12345/p/3603935.html原创 2020-11-23 23:38:53 · 265 阅读 · 0 评论 -
数据结构算法C实现(快速排序递归算法)
快速排序void QuickSort(int R[], int low,int high){ int temp; int i=low,j=high; if(low<high); { temp=R[low]; while(i<j) // 将数组中小于temp的放到左边,大于temp的放到右边 { while(j>i&&R[j]>=temp) --j; // 从右往左扫描,找到一个小于temp的关键字 if(i<j)原创 2020-09-10 12:03:10 · 306 阅读 · 0 评论 -
数据结构算法C实现(二路归并排序算法)
// 将前后两个相邻有序表归并为一个有序表,设两段有序表A[low..mid]、A[mid+1..high]存放在同一个有序表的相邻位置,先将他们复制到辅助数组B中,// 每次从对应B中的两个段取出一个记录进行关键字的比较,将较小者放入A中,当数据B中有一段的下标超出其对应的表长(// 即该段段所有元素都已复制到A中)时,将另一段中的剩余部分直接复制到A中Elemtype *B=(Elemtype *)malloc((n+1)*sizeof(Elemtype)) // 构建辅助数组Bvoid Mer原创 2020-09-10 11:46:56 · 533 阅读 · 0 评论 -
数据结构算法C实现(希尔排序算法)
希尔排序void SHELLSORT(keytype K[],int n){ int i,j,flag,gap=n; keytype temp; while(gap>1){ gap=gap/2; do{ flag=0; // 是否执行交换,初始化不执行交换 for(i=1;i<=n-gap;i++){ // 每次循环n-gap趟 j=i+gap; // 增量为gap的元素两两作交换 if(K[i]>K[j]){原创 2020-09-10 11:12:08 · 159 阅读 · 0 评论 -
数据结构算法C实现(折半插入排序算法)
// 折半插入void BIN_INSERTSORT(keytype K[], int n ){ int i,j,low,high,mid; keytype temp; for(i=2;i<=n;i++){ // 每次插入 temp=K[i]; // 带插入元素暂存 low = 1; high = i-1; while(low<=high){ // 找到最小值的位置 mid=(low+high)/2; if(temp<K[mid])原创 2020-09-10 10:55:54 · 197 阅读 · 0 评论 -
数据结构算法C实现(堆积算法)
堆积排序// 教材// 初始化- 以第i个结点作为根结点的自述调整为一个新的堆积,即完成k[i]与其左、右子树的根节点k[2i]和k[2i+1]中最大值交换位置,// 若交换位置以后破环了子树的堆积特性,则再对这颗子树重复这个交换位置的过程,直到以结点i为根节点的子树成为堆积。// 堆积排序- 根节点和最后一个结点进行排序void ADJUST(keytype K[],int i,int m) // 初始化{ int j; keytype temp; temp=K[i]; j=2原创 2020-09-10 10:34:23 · 327 阅读 · 0 评论 -
数据结构算法C实现(冒泡排序算法)
冒泡排序void BUBBLESORT(keytype K[], int n){ int i,j,flag=1; // flag标志为是否需要交换 keytype temp; i=n-1; while(i>0&&flat==1){ flag=0; // 每一趟排序之前先置标志flag=0 for(j=1;j<=i;j++) if K[j]>K[j+1]{ temp=K[j]; K[j]=K[j+1] K[j+1]=原创 2020-09-09 12:39:07 · 142 阅读 · 0 评论 -
数据结构算法C实现(直接插入排序算法)
插入算法// i为你第几个位置,从1开始算void INSERTSORT(keytype K[], int n){ int i, j; keytype temp; for(i=2;i<=n;i++){ temp = K[i]; // 暂存要插入的位置 j=i-1; while(j>0&&temp<k[j]) // 从已经排好序的部分从后向前检测,找到后,向后移动元素位置 K[j+1]=K[j--]; K[j+1] = tem原创 2020-09-09 12:20:40 · 159 阅读 · 0 评论