java笔试题算法题_C笔试题算法
【jianli.jxxyjl.com--笔试题目】
C语言能直接访问硬件的物理地址,能进行位(bit)操作。兼有高级语言和低级语言的许多优点。下面就由小编为大家介绍一下C笔试题算法的文章,欢迎阅读。
C笔试题算法篇1
冒泡法:
这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: #include
void BubbleSort(int* pData,int Count)
{
int iTemp;
for(int i=1;i
{
for(int j=Count-1;j>=i;j--)
{
if(pData[j]
{
iTemp = pData[j-1];
pData[j-1] = pData[j];
pData[j] = iTemp;
}
}
}
}
void main
{
int data = {10,9,8,7,6,5,4};
BubbleSort(data,7);
for (int i=0;i<7;i++)
cout<
}
倒序
第一轮:10,9,8,7->10,9,7,8->10,7,9,8->7,10,9,8(交换3次)
第二轮:7,10,9,8->7,10,8,9->7,8,10,9(交换2次)
第一轮:7,8,10,9->7,8,9,10(交换1次)
循环次数:6次
交换次数:6次
其他:
第一轮:8,10,7,9->8,10,7,9->8,7,10,9->7,8,10,9(交换2次)
第二轮:7,8,10,9->7,8,10,9->7,8,10,9(交换0次)
第一轮:7,8,10,9->7,8,9,10(交换1次)
循环次数:6次
交换次数:3次
上面我们给出了程序段,现在我们分析它:这里,影响我们算法性能的主要部分是循环和交换,显然,次数越多,性能就越差。从上面的程序我们可以看出循环的次数是固定的,为1+2+...+n-1。 写成公式就是1/2*(n-1)*n。
现在注意,我们给出O方法的定义:
若存在一常量K和起点n0,使当n>=n0时,有f(n)<=K*g(n),则f(n) = O(g(n))。(呵呵,不要说没学好数学呀,对于编程数学是非常重要的!!!)
现在我们来看1/2*(n-1)*n,当K=1/2,n0=1,g(n)=n*n时,1/2*(n-1)*n<=1/2*n*n=K*g(n)。所以(n)=O(g(n))=O(n*n)。所以我们程序循环的复杂度为O(n*n)。
再看交换。从程序后面所跟的表可以看到,两种情况的循环相同,交换不同。其实交换本身同数据源的有序程度有极大的关系,当数据处于倒序的情况时,交换次数同循环一样(每次循环判断都会交换),复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。乱序时处于中间状态。正是由于这样的原因,我们通常都是通过循环次数来对比算法。
C笔试题算法篇2
交换法:
交换法的程序最清晰简单,每次用当前的元素一一的同其后的元素比较并交换。
#include
void ExchangeSort(int* pData,int Count)
{
int iTemp;
for(int i=0;i
{
for(int j=i+1;j
{
if(pData[j]
{
iTemp = pData[i];
pData[i] = pData[j];
pData[j] = iTemp;
}
}
}
}
void main
{
int data = {10,9,8,7,6,5,4};
ExchangeSort(data,7);
for (int i=0;i<7;i++)
cout<
}
倒序
第一轮:10,9,8,7->9,10,8,7->8,10,9,7->7,10,9,8(交换3次)
第二轮:7,10,9,8->7,9,10,8->7,8,10,9(交换2次)
第一轮:7,8,10,9->7,8,9,10(交换1次)
循环次数:6次
交换次数:6次
其他:
第一轮:8,10,7,9->8,10,7,9->7,10,8,9->7,10,8,9(交换1次)
第二轮:7,10,8,9->7,8,10,9->7,8,10,9(交换1次)
第一轮:7,8,10,9->7,8,9,10(交换1次)
循环次数:6次
交换次数:3次
从运行的表格来看,交换几乎和冒泡一样糟。事实确实如此。循环次数和冒泡一样也是1/2*(n-1)*n,所以算法的复杂度仍然是O(n*n)。由于我们无法给出所有的情况,所以只能直接告诉大家他们在交换上面也是一样的糟糕(在某些情况下稍好,在某些情况下稍差)。
C笔试题算法篇3
选择法:
现在我们终于可以看到一点希望:选择法,这种方法提高了一点性能(某些情况下)
这种方法类似我们人为的排序习惯:从数据中选择最小的同第一个值交换,在从省下的部分中选择最小的与第二个交换,这样往复下去。
#include
void SelectSort(int* pData,int Count)
{
int iTemp;
int iPos;
for(int i=0;i
{
iTemp = pData[i];
iPos = i;
for(int j=i+1;j
{
if(pData[j]
{
iTemp = pData[j];
iPos = j;
}
}
pData[iPos] = pData[i];
pData[i] = iTemp;
}
}
void main
{
int data = {10,9,8,7,6,5,4};
SelectSort(data,7);
for (int i=0;i<7;i++)
cout<
}
倒序(最糟情况)
第一轮:10,9,8,7->(iTemp=9)10,9,8,7->(iTemp=8)10,9,8,7->(iTemp=7)7,9,8,10(交换1次) 第二轮:7,9,8,10->7,9,8,10(iTemp=8)->(iTemp=8)7,8,9,10(交换1次)
第一轮:7,8,9,10->(iTemp=9)7,8,9,10(交换0次)
循环次数:6次
交换次数:2次
其他:
第一轮:8,10,7,9->(iTemp=8)8,10,7,9->(iTemp=7)8,10,7,9->(iTemp=7)7,10,8,9(交换1次) 第二轮:7,10,8,9->(iTemp=8)7,10,8,9->(iTemp=8)7,8,10,9(交换1次)
第一轮:7,8,10,9->(iTemp=9)7,8,9,10(交换1次)
循环次数:6次
交换次数:3次
遗憾的是算法需要的循环次数依然是1/2*(n-1)*n。所以算法复杂度为O(n*n)。
我们来看他的交换。由于每次外层循环只产生一次交换(只有一个最小值)。所以f(n)<=n 所以我们有f(n)=O(n)。
所以,在数据较乱的时候,可以减少一定的交换次数。
-
【c语言经典笔试题】c经典笔试题详细阅读
C是高级语言:它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。下面就由小编为大家介绍一下c经典笔试题的文章,欢迎阅读。 c经典笔试题篇1 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信...
-
【编程猫笔试题】C编程笔试题详细阅读
编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到相应结果的过程。下面就由小编为大家介绍一下C++编程笔试题的文章,欢迎阅读。 C++编程笔试题篇1 一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)...
-
excel笔试题及答案_关于EXCEL的笔试题目详细阅读
Excel中大量的公式函数可以应用选择,是现代很多工作岗位都要用到的。 下面由小编为你提供的关于EXCEL的笔试题目,希望能帮到你。 关于EXCEL的笔试题目(一) 1、在Excel中,下列输入数据属于字符型的是( )。 +A1+3 =SUM(A1:A2) =A1+3 SUM(A1,A2)...
-
东北大学自主招生试题|2021年东北大学自主招生笔试题详细阅读
东北大学始建于1920xx年4月。1920xx年8月至1937年1月,著名爱国将领张学良将军任校长。“九·一八”事变后,东北大学被迫迁徙北平、开封、西安、四川三台等地。下面是小编为你整理的20xx年东北大学自主招生笔试题,希望对你有所帮助! 6月10日,东...
-
[2021年山东省公务员遴选公告最新消息]2021年山东省公务员遴选笔试真题及参考答案详细阅读
虽然20xx年山东省公务员遴选笔试已经过去,但对于即将参加20xx年山东省公务员遴选笔试的小伙伴来说,去年的真题具有很大的参考价值。今天小编要与大家分享的是20xx年山东省公务员遴选笔试真题,希望对大家的学习有帮助!20xx年山东省公务员遴选笔试真题 一、简答(30分每题10分) 1、20x...
-
【c语言指针笔试题】c指针笔试题详细阅读
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。下面就由小编为大家介绍一下c指针笔试题的文章,欢迎阅读。 c指针笔试题篇1 1 变量的指针,其含义是指该变量的_________ a)值 b)地址 c)名 d)一个标志 2 若有语句int *point,a=4;和p...
-
西安交通大学自主招生测试指南|西安交通大学2021年自主招生测试题汇总详细阅读
西安交通大学为中国最早兴办的高等学府之一,肇始于1896年创建于上海的南洋公学,1920xx年改称交通大学(Chiao Tung University),1956年国务院决定交通大学内迁西安,为交通大学西安部分,1959年定名西安交通大学。下面是小编为你整理的西安交通大学20xx年自主招生测试题...
-
西南财经大学自主招生条件|2021年西南财经大学自主招生笔试题详细阅读
西南财经大学是教育部直属的国家“211工程”和“985工程”优势学科创新平台建设的全国重点大学,也是国家教育体制改革试点高校。下面是小编为你整理的20xx年西南财经大学自主招生笔试题,希望对你有所帮助! 20xx年西南财经大学自主招生笔试题 财经...
-
excel考试题目_EXCEL笔试题目详细阅读
Excel中大量的公式函数可以应用选择,使用Microsoft Excel可以执行计算,分析信息并管理电子表格或网页中的数据信息列表与数据资料图表制作,可以实现许多方便的功能,带给使用者方便。下面就由小编为大家介绍一下EXCEL笔试题目的文章,欢迎阅读。 EXCEL笔试题目篇1 1 Exc...
-
【java开发笔试题】关于JAVA的笔试题有哪些详细阅读
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。下面是小编为你整理的JAVA笔试题150例,希望对你有所帮助! JAVA笔试题150例 一、Java基础方面 1、作用域public,private,protected,以及不写...