第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 数据结构源码笔记(C语言):可变长度字符串的快速排序

数据结构源码笔记(C语言):可变长度字符串的快速排序

时间:2023-07-25 13:59:20

相关推荐

数据结构源码笔记(C语言):可变长度字符串的快速排序

//实现可变长度的字符串序列快速排序算法#include<stdio.h>#include<malloc.h>#include<string.h>#define MaxL 50 //最大的字符串长度typedef struct node //记录类型{int start;//串的起始位置int length;}RecType;int StringComp(char s[],RecType a[],int s1,RecType temp){char str1[MaxL],str2[MaxL];int i,j;for(j=0,i=a[s1].start;i<a[s1].start+a[s1].length;i++,j++)str1[j]=s[i];//将第s1个字符串复制到Str1中str1[j]='\0';//字符串末尾置'\0'for(j=0,i=temp.start;i<temp.start+temp.length;i++,j++)str2[j]=s[i];//将temp所指的字符串复制到Str2中str2[j]='\0';return strcmp(str1,str2);//调用标准字符串比较函数返回结果}void QuickSort(char s[],RecType a[],int low,int high){int i,j;RecType temp;i=low;j=high;if(low<high){temp=a[low];while(i!=j){while(j>i && StringComp(s,a,j,temp)>0) j--;if(i<j){a[i]=a[j];i++;}while(i<j && StringComp(s,a,i,temp)<0) i++;if(i<j){a[j]=a[i];j--;}}a[i]=temp;QuickSort(s,a,low,i-1);QuickSort(s,a,i+1,high);}}int main(){int i,j,n=6;char s[]={"whileifif-elsedo-whileforcase"};RecType a[]={{0,5},{5,2},{7,7},{14,8},{22,3},{25,4}};printf("排序前的字符串:\n");for(i=0;i<n;i++){printf(" ");for(j=a[i].start;j<a[i].start+a[i].length;j++)printf("%c",s[j]);printf("\n");}printf("\n");QuickSort(s,a,0,n-1);printf("排序后的字符串:\n");for(i=0;i<n;i++){printf(" ");for(j=a[i].start;j<a[i].start+a[i].length;j++)printf("%c",s[j]);printf("\n");}return 0;}

数据结构源码笔记(C语言描述)汇总:

数据结构源码笔记(C语言):英文单词按字典序排序的基数排序

数据结构源码笔记(C语言):直接插入排序

数据结构源码笔记(C语言):直接选择排序

数据结构源码笔记(C语言):置换-选择算法

数据结构源码笔记(C语言):Huffman树字符编码

数据结构源码笔记(C语言):Josephus问题之顺序表

数据结构源码笔记(C语言):Josephus问题之循环链接表

数据结构源码笔记(C语言):多项式合并

数据结构源码笔记(C语言):二叉树之叶子结点旋转销毁

数据结构源码笔记(C语言):哈夫曼树

数据结构源码笔记(C语言):集合的位向量表示

数据结构源码笔记(C语言):链接队列

数据结构源码笔记(C语言):链接栈

数据结构源码笔记(C语言):线性表的单链表示

数据结构源码笔记(C语言):线性表的顺序表示

数据结构源码笔记(C语言):栈的基本操作

数据结构源码笔记(C语言):中缀表达式

数据结构源码笔记(C语言):希尔插入排序

数据结构源码笔记(C语言):索引文件建立和查找

数据结构源码笔记(C语言):冒泡排序

数据结构源码笔记(C语言):快速排序

数据结构源码笔记(C语言):可变长度字符串的快速排序

数据结构源码笔记(C语言):基数排序

数据结构源码笔记(C语言):二路归并排序

数据结构源码笔记(C语言):堆排序

数据结构源码笔记(C语言):二叉树搜索树Kruskal

数据结构源码笔记(C语言):二叉搜索树Prim

数据结构源码笔记(C语言):最短路径弗洛伊德算法

数据结构源码笔记(C语言):深度、广度优先生成树

数据结构源码笔记(C语言):邻接矩阵转化邻接表

数据结构源码笔记(C语言):统计字符串中出现的字符及其次数

数据结构源码笔记(C语言):顺序查找

数据结构源码笔记(C语言):哈希表的相关运算算法

数据结构源码笔记(C语言):分块法查找

数据结构源码笔记(C语言):二分查找

数据结构源码笔记(C语言):二叉树遍历

数据结构源码笔记(C语言):二叉平衡树的相关操作算法

数据结构源码笔记(C语言):二叉排序树的基本操作算法

数据结构源码笔记(C语言):B树的相关运算算法

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。