算法
文章平均质量分 80
chenjun840168660
这个作者很懒,什么都没留下…
展开
-
基本算法之蛮力法
选择排序(不稳定)void SelectionSort(int *a,int n) { int i,j,min; int temp; for(i=0;i!=n-1;++i) { min=i; for(j=i+1;j!=n;++j) { if(a[j]原创 2012-11-22 19:36:42 · 882 阅读 · 0 评论 -
基本算法之分治法
合并排序合并排序的时间复杂度为:O(nlogn),最坏情况下的键值比较次数接近于任何基于比较的排序算法的理论上能够达到的最小次数,主要缺点是该算法需要线性的额外空间。#include "stdafx.h"#includeusing namespace std;void Merge(int *a,int *b,int left,int middle,int right原创 2012-12-23 22:03:14 · 818 阅读 · 0 评论 -
基本算法之减治法
插入排序 思路:在此是将数组进行升序排序,把长度为n的数组看做有序的a[0.......n-2]和a[n-1]两部分组成,然后从右到左扫描a[0......n-2]数组,找到第一个小于或等于a[n-1]的元素,然后将a[n-1]插入到,然后把a[n-1]插入到该元素的后面,体现了分治的思想。 该算法最坏情况是一个降序排列的输入,需要经过n*n次比较,最好的情况是一个升序排列的输入,需要比原创 2012-12-30 15:28:48 · 1194 阅读 · 0 评论