摘要: 例:(6+3*(7-4))-8/2 首先需要分配2个栈,一个作为临时存储运算符的栈S1(含一个结束符号),一个作为存放结果(逆波兰式)的栈S2(空栈),S1栈可先放入优先级最低的运算符#,注意,中缀式应以此最低优先级的运算符结束。可指定其他字符,不一定非#不可。从中缀式的左端开始取字符,逐序进行如下 阅读全文
posted @ 2022-11-12 15:02 arvin。 阅读(27) 评论(0) 推荐(0)
摘要: #include<iostream> using namespace std; int r[100]={0}; int n; int Partition(int i,int j){//单趟快速排序 r[0]=r[i]; int x=r[i]; while(i<j){ while(i<j&&r[j]> 阅读全文
posted @ 2021-12-09 22:12 arvin。 阅读(65) 评论(0) 推荐(0)
摘要: #include<iostream> using namespace std; int r[100]={0}; int n; void BubbleSort(){ for(int i=1;i<n;i++){ for(int j=i+1;j<=n;j++){ if(r[i]>r[j]){ int te 阅读全文
posted @ 2021-12-09 21:47 arvin。 阅读(28) 评论(0) 推荐(0)
摘要: 希尔排序是直接插入排序的优化不稳定,nlogn #include<iostream> using namespace std; int r[100]={0}; int n; void ShellSort(){ int d=n/2;//间隔根据实际情况取得 while(d>=1){ for(int i 阅读全文
posted @ 2021-12-09 19:30 arvin。 阅读(31) 评论(0) 推荐(0)
摘要: 插入排序 时间复杂度n2, 假设给定数组(整型)第一个元素有序 从第二个元素开始,与自己左边的第一个元素比较,如果比自己小,则不动;如果比自己大,就与自己左边的第二个元素比较;直到遇到不比自己大的元素,在其右边插入 选取后面的元素,依次重复第二步 void InsertSort(){ for(int 阅读全文
posted @ 2021-12-09 19:21 arvin。 阅读(25) 评论(0) 推荐(0)