c/c++
weiqianghu
个人主页,欢迎调戏: http://weiqianghu.github.io/
展开
-
快速排序
int Partition(int *A,int low,int hight){ int key=A[low]; while(low<high){ while(low=key) --high; swap(A[low],A[high]); wh原创 2015-06-27 16:35:00 · 428 阅读 · 0 评论 -
c中的static变量
当一个进程的全局变量被声明为static之后,它的中文名叫静态全局变量。静态全局变量和其他的全局变量的存储地点并没有区别,但是它只在定义它的源文件内有效,其他源文件无法访问它。static局部变量中文名叫静态局部变量。它与普通的局部变量比起来有如下几个区别:1)位置:静态局部变量被编译器放在全局存储区,所以它虽然是局部的,但是在程序的整个生命周期中存在。2)访问权限:静态局部变量只能被其作用域内的变原创 2015-06-27 14:53:19 · 793 阅读 · 0 评论 -
排序算法之插入排序
void InsertSort(DataList& L){ DataType temp;int i,j; for(i=1;i<=L.n-1;i++){ if(L.elem[i].key<L.elm[i-1].key){ temp=L.elm[i]; for(j=i-1;j>=0&&temp.key<L.elm[j].key;j--) L.elm[j+1]=L.elm[j原创 2015-06-29 21:22:28 · 488 阅读 · 0 评论 -
折半查找
1.折半查找的非递归算法 int BinarySearch(SeqList &L,DataType x) { int high=L.n-1,low=0,mid; while(low<=high){ mid=(low+high)/2; if(x.key>L.data[mid].key) low=mid+1; else if(x.key<L.data[mid].key原创 2015-06-28 10:08:29 · 779 阅读 · 0 评论 -
各种排序算法之比较
1.时间复杂度 时间复杂度为O(n^2)的排序算法:插入排序、冒泡排序、选择排序 时间复杂度为O(nlogn)的排序算法:堆排序、归并排序、快速排序 希尔排序介于这两者之间 2.算法稳定性 稳定的排序算法:插入排序、冒泡排序、归并排序和基数排序 不稳定的排序算法:选择排序、快速排序、希尔排序、堆排序原创 2015-06-29 21:49:17 · 963 阅读 · 0 评论 -
c++中的静态成员
c++中,提出静态成员的目的是为了解决数据共享问题,一个给定类的每个对象都有类中定义的所有数据的副本,如果在类中将数据成员用static修饰,则这个类成员只要一个副本,并且它被这个类的所有对象所共享。与类的其他成员一样,静态成员包含静态数据成员和静态成员函数。静态方法不能访问普通数据成员。静态方法直接用类名访问而不需要实例化,在实例化之前普通数据成员是不存在的。原创 2015-06-27 14:44:28 · 403 阅读 · 0 评论 -
排序算法之快速排序
int AdjustArray(int s[], int l, int r) //返回调整后基准数的位置 { int i = l, j = r; int x = s[l]; //s[l]即s[i]就是第一个坑 while (i < j) { // 从右向左找小于x的数来填s[i] while(i = x) j--; if(i < j) { s[i] =原创 2015-06-27 20:26:27 · 477 阅读 · 0 评论 -
c++中的构造函数和析构函数
析构函数用来释放在类的构造函数中或整个生命期中获得的资源。 在一个类中可以有多个构造函数和一个析构函数。 构造函数允许重载,析构函数不允许重载。 析构函数自动调用。原创 2015-06-27 14:36:43 · 401 阅读 · 0 评论 -
排序算法之选择排序
void select_sort(int a[],int len) { int i,j,max,k; for(i=0;i<len;i++) { max=a[i]; k=i; for(j=i;j<len;j++) { if(a[j]<max) { max=a[j]; k=j; } } a[k]=a[i]; a[i]=max; }原创 2015-06-27 20:36:27 · 408 阅读 · 0 评论 -
排序算法之冒泡排序
冒泡排序: 冒泡排序的的优点是好理解,稳定,再就是空间复杂度低,不需要额外开辟数组元素的临时保存控件,当然了,编写起来也容易。 其算法很简单,就是比较数组相邻的两个值,把大的像泡泡一样“冒”到数组后面去,一共要执行N的平方除以2这么多次的比较和交换的操作(N为数组元素),其复杂度为Ο(n²),如图: main() { int a[5]; int i;原创 2015-06-27 20:30:23 · 476 阅读 · 0 评论