【项目】C语言实现对英文文本按字典顺序排序(1~100万+个单词,多种排序算法选择)

介绍

对含有多个单词的英文文本,选择多个排序算法,将所有单词按字典顺序排序,并实时显示各个排序算法执行时间

算法代码与exe程序

Github

基本功能

  1. 随机生成一篇英文文本,单词之间有空格分隔,存放在程序所在目录下的TextSort_1.txt文本文件中
  2. 读取TextSort_1.txt文件,将其中保存的英文文章调入内存
  3. 调用排序算法对英文文本按字典顺序进行排序,排序完成后输出排序时间,并将文章存放在程序所在目录下的TextSort_2.txt文本文件中
    • 直接插入排序
    • 冒泡排序
    • 堆排序
    • 折半插入排序
    • 快速排序

完整功能

  • 显示界面
    1. 显示程序名称
    2. 显示程序运行步骤
    3. 显示算法选择菜单
  • 英文文本生成
    1. 可输入单词数量,控制文章大小
    2. 随机生成英文文章,存放在程序所在目录下的TextSort_1.txt文本文件中
  • 排序
    1. 读取TextSort_1.txt文件,将其中保存的英文文本调入内存
    2. 输入需要调用的排序算法序号
      • 直接插入排序
      • 冒泡排序
      • 堆排序
      • 折半插入排序
      • 快速排序
    3. 对英文文本按字典顺序进行排序,排序结束后输出排序算法运行时间
  • 排序后英文文本生成
    1. 生成排序后文本
    2. 将文本存放在程序所在目录下的TextSort_2.txt文本文件中

函数总览

StrLength(char r[]) //求字符串长度
StrCompare(char r1[], char r2[]) //字符串比较
BubbleSort(char* r[], int num) //冒泡排序
AdjustHeap(char* r[], int k, int m) //调整堆顶结点到合适位置上(重建堆)
CrtHeap(char* r[], int num) //创建大顶堆
HeapSort(char* r[], int num) //堆排序
BinSort(char* r[], int num) //折半插入排序
QKOnePass(char* r[], int left, int right) //一趟快速排序
QKSort(char* r[], int low, int high) //快速排序
InsSort(char* r[], int num) //直接插入排序
CrtText(int num) //英文文章随机生成和txt文件创建
CrtSortText(char* r[], int num) //排序后英文文章txt文件创建
ReadIn(char* r[], int num) //txt文件读取
SortInterfacee() //排序算法选择界面
TextCrtInterfacee() //文本创建界面
SortSelect(char* r[], int num) //排序算法选择
main() //主函数

运行实例(10万个单词的英文文本排序)

  • 程序执行 在这里插入图片描述
  • 未排序英文文章在这里插入图片描述
  • 排序后英文文章在这里插入图片描述 (第一列无序字符是上一行最后一个单词剩余部分)

参考文献

耿国华.数据结构——C语言描述[M].北京:高等教育出版社 ,2011.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值