- 博客(5)
- 收藏
- 关注
原创 辗转相除法
求最大公约数一般有穷举法和迭代法两种,两种方法求最大公约数都很简单,辗转相除法就是迭代法的一种,感觉没啥说的,下面是代码:int gcd(int a,int b){ int temp; if(a<b) { temp=a; a=b; b=temp; } while(b!=0) {
2017-03-20 20:40:23 426
原创 归并排序
归并排序也是一种效率很高的排序算法,时间复杂度为O(nlogn), 在处理一般数据的情况下与快速排序效率相差不大,其中的算法思想不仅仅应用再排序上,利用归并排序算法求逆序数也是一个经典应用,此处只介绍归并排序,对于用归并排序求逆序数不再赘述。归并排序的主要思想在其名字上也有体现,主要分为两部分:递归和合并,也是分治法的一种体现,将一个大问题逐步化简为小问题。下面是实现过程: 首先将一个待
2017-03-15 19:41:29 298
原创 快速排序
快速排序是一种效率比较高的排序方法,时间复杂度为O(nlogn),这个时间基本上能够过绝大部分OJ,下面是它的主要排序方法: 快速排序主要采取从数组尾和数组首两端同时比较排序的方法,选取数组尾即数组的最后一个元素为待比较的元素,然后从数组尾依次向前直到找到第一个比原来的待比较元素大的元素(此处实现数组的升序排列,若实现数组的降序排列则找到第一个比待比较元素小的元素),然后交换,再
2017-03-15 18:58:39 295
原创 冒泡排序
冒泡排序(BubbleSort)算法的基本思想,依次比较相邻的两个数,将小数放在前面,大数放在后面(此时按升序排列,若按降序排列则反之),如此继续,这样最后一个数是最大的数。重复以上过程做第二趟,这次考察范围比上次少了一个,因为第一趟排序已经将最大的数放在最后,不需再比较。如此下去,若n个待排序数,共需要做n-1趟就完成排序了。 算法的复杂度为O(n^2). 效率并不是很高。。。
2017-03-14 20:48:06 297
原创 生日不相同的概率
假设我们班有50名同学,每个同学都报出自己的生日,每个同学的生日都不相重的概率只有0.0296,如果有100个同学,不相重的概率为3.0725´10-7。相重复的概率如此之大与我们主观想象不同。编写程序,输入同学的人数n,计算出其生日不重复的概率。然后在用仿真的方法,利用随机数产生每个同学的生日,计算出生日不重复的概率并与前面的结果进行比较。 #include
2017-03-13 20:58:04 4661 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人