摘要:设A[1...n]是一个包含n个不同数的数组。如果在i<j的情况下,有A[i]>A[j],则(i,j)就成为A中的一个逆序对(inversion)。要确定一个数组中的逆序对的个数,可以采取分治法。将A分为两部分A1和A2,则A中逆序对的数目等于A1中逆序对的数目、A2中逆序对的数目和A1,A2合并时A1中比A2中元素大的数目。参考代码:#include <iostream>using namespace std;#define MAX_VALUE 99999//合并时计算逆序对数目int MergeCountReverse(int *a,int low,int mid,
阅读全文
摘要:下面简要总结了常用的一些排序算法。如有错误,还请大家指正、见谅~~谢谢~~【1】插入排序:是一个对少量元素进行排序的有效算法。实现比较简单。时间复杂度:O(n^2),空间复杂度:O(1)。是稳定的排序方法。代码://insertion sort
#include <iostream>
using namespace std; //insertion sort
void InsertionSort(int *a,int n)
{ int temp; for(int i = 1;i < n;++i) { temp = *(a + i); int j = i - 1; while.
阅读全文
摘要:题目一共三道,都比较简单,主要还是注重基础知识的考察。答案是自己编写的,不一定正确,仅供参考。欢迎大家提出宝贵的意见~~1、选秀节目打分,分为专家评委和大众评委,score[] 数组里面存储每个评委打的分数,judge_type[] 里存储与 score[] 数组对应的评委类别,judge_type[i] == 1,表示专家评委,judge_type[i] == 2,表示大众评委,n表示评委总数。打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分 = 专家评委平均分 *0.6 + 大众评委 * 0.4,总分取整。如果没有大众评委,则 总分 = 专家评委平均分,总
阅读全文
摘要:二叉树建立及中序遍历C++语言实现:#include<stdio.h>#include<stdlib.h>typedef struct node{//二叉树结点数据结构定义; char data; struct node *lchild,*rchild;}BTNode,*BTree;void createBTree(BTree &T){ char c; scanf("%c",&c); if(c=='#'){ T=NULL; } else{ BTree t; t=(BTree)malloc(sizeof(BTNode))
阅读全文
摘要:二叉树建立及中序遍历C++语言实现:#include<stdio.h>#include<stdlib.h>typedef struct node{//二叉树结点数据结构定义; char data; struct node *lchild,*rchild;}BTNode,*BTree;void createBTree(BTree &T){ char c; scanf("%c",&c); if(c=='#'){ T=NULL; } else{ BTree t; t=(BTree)malloc(sizeof(BTNode))
阅读全文
摘要:先序遍历这个过程能总结出规律吗?(栈顶元素如果有左子树,则把左子树入栈,否则退出栈顶节点,并将其右子树入栈)思路有了,程序写得出来了吧。注意,先序遍历节点入栈之前访问。void PreOrderTraverse ( Bitree T ) { StackType S; BitreeNode * p; S.makeEmpty( ); p = T; do{ while ( p ) { printf ( p→data); S.Push(p); p = p→leftChild; } ...
阅读全文
摘要:先序遍历这个过程能总结出规律吗?(栈顶元素如果有左子树,则把左子树入栈,否则退出栈顶节点,并将其右子树入栈)思路有了,程序写得出来了吧。注意,先序遍历节点入栈之前访问。void PreOrderTraverse ( Bitree T ) { StackType S; BitreeNode * p; S.makeEmpty( ); p = T; do{ while ( p ) { printf ( p→data); S.Push(p); p = p→leftChild; } ...
阅读全文
摘要://////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////1. 输入形式为:A[空格或换行]O[空格或换行]B; //// 2. 1中A、B为大数,O为运算符(如输入:123456789 / 432432); //// 3. 既然处理大数,就没必要输入小数点位了; //// 4.加减不能处理负号,乘除可以; //// 5. 用于学习交流,若发现错误或不妥之处可联系 ///////...
阅读全文
摘要://////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////1. 输入形式为:A[空格或换行]O[空格或换行]B; //// 2. 1中A、B为大数,O为运算符(如输入:123456789 / 432432); //// 3. 既然处理大数,就没必要输入小数点位了; //// 4.加减不能处理负号,乘除可以; //// 5. 用于学习交流,若发现错误或不妥之处可联系 ///////...
阅读全文
摘要:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 例如:n = 9, k = 1, m = 5 【解答】 出局人的顺序为5, 1, 7, 4, 3, 6, 9, 2, 8。链表实现://链表实现约瑟夫环问题 #include<stdio.h>#include<stdlib.h>typedef int ElemType;typedef struct LNode{ ElemType data; struct L...
阅读全文