快速排序算法

快速排序使用了分治法,将数组分成两个部分,左边的部分小于等于主元大小,右边部分大于主元大小。 inline void swap(int& a, int &b) { int tmp; tmp=a; a=b; b=tmp; } void qsort(int a[],int...

2013-06-19 13:35:55

阅读数 613

评论数 0

插入排序

插入排序的原理和排序扑克牌的原理一样。假设有n张牌,手中的牌已经排好顺序,每次从桌上新拿一张牌。每拿到一张牌都需要从右往左将它与手中的牌进行比较。由于插入需要增加一个存储空间,因此可以用一个临时变量key存储当前从桌子上拿到的牌。代码如下 void insertion_sort(int a[],...

2013-06-18 16:39:41

阅读数 472

评论数 0

二分搜索

递归版本 int binary_search(const int a[], int low,int up, const int key) { int mid=(low+up)/2; if(low>up) return -1; else { if(a[mid]==key) ...

2013-06-18 14:25:43

阅读数 598

评论数 0

最大子数组算法

题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。比如输入a[]={31,-41,59,26,-53,58,97,-93,-23,84},那么程序的输出为a[2...6]的和,即18...

2013-06-18 13:06:35

阅读数 829

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭