大部分的互联网校招的笔试都会有算法与数据机构的题目,为了准备笔试,开始算法与数据结构的学习。本文是基础的冒泡排序,此系列学习都用的C++.冒泡排序语言叙述:假设要求递增排序。选取第一个元素,遍历后面元素并与之比较,如果大于,则交换2者位置;重复上述过程,直到最后一个元素。代码如下:bool Bubb...
分类:
其他好文 时间:
2014-09-15 12:34:38
阅读次数:
114
原文地址:
#include
#include
#include
#include
using std::cout;
using std::endl;
using std::string;
using std::stack;
int arr1[10] = {3,5,2,8,6,1,4,0,9,7};
int arr2[10] = {3,5,2,8,6,1,4,0,9,7};
v...
分类:
其他好文 时间:
2014-09-14 23:44:47
阅读次数:
193
一、常用的排序算法的时间复杂度和空间复杂度排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序O(n2)O(n2)稳定O(1)二叉树排序O(n2)O(n*log2n)不一顶O(n)插入排...
分类:
其他好文 时间:
2014-09-14 17:53:57
阅读次数:
375
要求,对数组arr[]进行冒泡法排序。思路:1,用第一个元素,和第二个元素相比,将结果大的数放在第二个元素,然后用第二个元素和第三个元素相比,将结果大的放在第三个元素里,依次类推,用倒数第二个元素和倒数第一个相比,将结果大的放到倒数第一个里。这样下来,最后的一个,就是最大的数。2,还是用第一个元素和...
分类:
编程语言 时间:
2014-09-14 14:01:17
阅读次数:
205
在程序设计中,经常要使用到函数体相同的函数,如果我们要根据所使用的参数表不同来决定调用具体哪个函数时,我们经常使用的方式是进行函数重载,但是当我们的函数很多的时候会发现实现起来很不方便。所以c++提供了函数模板的概念,这和类模板实现起来的方式是类似的。
下面举个例子,我们经常要使用的冒泡排序算法,被排序的对象可能是double,int,char,float等等,下面是实现代码:
templat...
分类:
编程语言 时间:
2014-09-13 12:05:25
阅读次数:
191
一、基本思路:
冒泡排序是一种简单的交换类排序。其基本思路是从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移。每经过一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列。
一般地,对n个元素进行冒泡排序,总共需要进行n-1趟。第1趟需要比较n-1次,第2趟需要比较n-2次,......第i...
分类:
编程语言 时间:
2014-09-12 17:20:33
阅读次数:
200
protected void SelectSort(int[] array) { int tmp;//暂存要交换的数据 int t;//交换数据的位置 for (int i = 0; i ...
分类:
其他好文 时间:
2014-09-12 14:47:23
阅读次数:
140
外层循环需要循环和len一样的次数//定义一个函数,该函数返回NSStringvoid bubbleSort(int nums[],unsigned long len){ //控制本轮循环是否发生过交换 //如果没有发生交换,那么说明该数组已经处于有序状态,可以提前结束排序 BOOL has...
分类:
其他好文 时间:
2014-09-11 22:08:02
阅读次数:
187
快速排序:快速排序是对冒泡排序的一种改进。它的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
一趟快速排序的具体做法:
1、附设两个指针low和high,它们的初值分别为low和high,设枢轴记录的关键字为pivotkey。
2、首先从high所指位置起向前搜索找到第一...
分类:
其他好文 时间:
2014-09-11 09:39:51
阅读次数:
216