句子中的单词逆序输出和归并排序
来源:互联网 发布:java 提取html文本 编辑:程序博客网 时间:2024/04/29 16:08
#include<iostream>#include<string>using namespace std;void SentenceReverse(string s)//句子中的单词逆序输出{string spit = " ,.!?";//单词间可能的分隔符int front, end;front = end = s.length()-1;//从句子末尾开始while (front >= 0){if (s[front] != spit[0] && s[front] != spit[2])front--;else{for (int i = front + 1; i <= end; i++)//碰到分割符则输出单词cout << s[i];cout << " ";end = front - 1;front--;}}if (end>=0)for (int i = front + 1; i <= end; i++)//碰到分割符则输出单词cout << s[i];}void SentenceReverse2(string sentence)//逆序输出句中单词{int front, end;//下标确定单词的范围string split = " ,.?!";//可能的分隔符front = end = sentence.length()-1;//从句子末尾开始while (front >= 0){if (sentence[front] != split[0])//没遇到分隔符front前移front--;else{for (int i = front + 1; i <= end; i++)//碰到分隔符则输出单词cout << sentence[i];cout << " ";front--;//将front与end同时前移end = front;}}for (int i = front + 1; i <= end; i++)cout << sentence[i];//将最后一个单词输出}void Merge(int *data, int start, int mid, int end)//将从开始到结束的数组从mid部分成两部分,将两部分按从大到小拼成一个数组{int len1 = mid - start + 1;//左边数组的长度int len2 = end - mid;//右边数组的长度int i, j, k;int *left = new int[len1];int *right = new int[len2];for (i = 0; i < len1; i++)left[i] = data[start + i];for (i = 0; i < len2; i++)right[i] = data[mid + 1+i];i = j = 0;for (k = start; k < end; k++)//循环来判定将两个数组按从大到小来排序{if (i == len1 || j == len2)//当一个数组判定完了之后,直接跳出循环break;else{if (left[i] < right[j])data[k] = left[i++];elsedata[k] = right[j++];}}while (j<len2)//这个时候判断到底是哪一个数组没有结束,将剩下的数全部放到data数组之中data[k++] = right[j++];while (i < len1)data[k++] = left[i++];delete[]left;//结束释放掉左右数组的空间delete[]right;}void MergeSort(int *data, int start,int end){int mid = (start + end) / 2;if (start < end)//将数组不断分割直到分成每个数组只含有一个数为止{MergeSort(data, start, mid);MergeSort(data, mid + 1, end);Merge(data, start, mid, end);//开始不断的将已经排好序的小数组进行合并,合并成一个大数组}}void ShowData(int *data, int len)//显示数组的元素{for (int i = 0; i < len; i++){cout << data[i] << " ";}}int main(){string sentence = "i am a brilliant boy.";//SentenceReverse2(sentence);int data[] = { 1, 2, 5, 4, 3, 9, 6, 7, 8, 10 };int len = sizeof(data) / sizeof(int);MergeSort(data, 0, len - 1);ShowData(data, len);return 0;}
0 0
- 句子中的单词逆序输出和归并排序
- 英文句子中的单词逆序
- C++ 实现句子中单词逆序输出
- java逆序英文句子中的单词顺序
- 将一个句子中的单词逆序
- 将句子中的每个单词逆序
- 字符串中的单词逆序输出
- 句子逆序,单词不逆序
- 输入一个英文句子,按单词逆序输出
- 再论句子中单词的逆序输出
- 牛客网-句子逆序问题(即,将一个句子中的所有单词间的顺序逆序)
- 归并排序和逆序数
- 归并排序和逆序对
- awk逆序输出句子
- 按单词将句子逆序
- c++之 字符串 中的单词逆序输出
- 对字符串数组中的单词逆序输出
- 数组中的逆序对(归并排序)
- 泰课笔记(一)之游戏架构
- POJ 3692 Kindergarten
- extjs piechart,linchart,chart IE不显示,火狐显示解决方法
- 微软100题(23)判断正方形和圆形相交
- hdu 3172 Virtual Friends
- 句子中的单词逆序输出和归并排序
- 图像处理与计算机视觉基础,经典以及最近发展
- 数论基础
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- extjs formpanel 读取后台数据
- android知识点
- android中传递复杂参数,activity之间和fragment之间的bundle传递集合/对象
- eclipse与j2ee
- hdu 1568 Fibonacci