C/C++
文章平均质量分 56
guge907
这个作者很懒,什么都没留下…
展开
-
Sizeof与Strlen的区别与联系
Sizeof与Strlen的区别与联系一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof转载 2014-03-11 08:40:57 · 446 阅读 · 0 评论 -
冒泡排序
冒泡排序是最基本的排序算法,其思想是:依次比较数组中两相邻数据的大小,将较小数据放在前,较大数据放在后面。例如对数组{12,8,23,19,17}进行冒泡排序:第一趟比较结果:8,12,19,17,23第二趟比较结果:8,12,17,19,23第三趟比较结果:8,12,17,19,23第四趟比较结果:8,12,17,19,23算法的平均时间复杂度:O(n2)原创 2014-03-25 16:12:26 · 681 阅读 · 1 评论 -
Sizeof与Strlen的区别与联系
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的转载 2014-05-07 20:14:29 · 576 阅读 · 0 评论 -
const指针
const是C++中的常量限定符,在编程中经常出现。本文介绍了用const修饰指针变量的三种用法,并介绍了它们之间的区别。原创 2014-05-07 14:59:12 · 750 阅读 · 0 评论 -
实现String类
这是从一个面试题目上看到的一个问题,给出String类的定义,原创 2014-05-07 13:18:46 · 580 阅读 · 0 评论 -
选择排序
选择排序的思想是:对含有N个整数的数组进行N-1趟排序,每一趟都将从待排序数据中选取最小的数据放在已排好序的数列最后。以数组 [23 15 27 18 21] 为例,第一趟排序后:15 [23 27 18 21]第二趟排序后:15 18 [23 27 21]第三趟排序后:15 18 21 [27 23]第四趟排序后:15 18 21 23 27如上面例子所示,第一趟排序中,原创 2014-03-25 22:15:32 · 562 阅读 · 0 评论 -
二路归并排序
#includeusing namespace std;#define MaxSize 100void Merge(int source[],int target[],int i,int m,int n){ int j,k,l; for(j=m+1,k=i;i<=m && j<=n;k++) { if (source[i]<source[j]) target[k]=so原创 2014-04-04 15:17:36 · 685 阅读 · 0 评论 -
C++实现字符串反转函数
用C++实现将一个字符串逆序输出:#include #include using namespace std;void swap(char *p,char *q){char c;c=*p;*p=*q;*q=c;}void Revert(char *p,int n){for(int i=0;i<n/2;i++){ swap(p+i,p+n-1-i);}}void原创 2014-03-24 16:43:16 · 2916 阅读 · 0 评论 -
直接插入排序
插入排序分两种:直接插入排序、二分插入排序(又称折半插入排序),这里介绍的是直接插入排序。直插排序的思想是:对含有N个元素的数组,进行N-1趟排序,每一趟排序,就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找到插入的位置。例如,对数组[26 17 23 15 19]我们先将26视为有序数列,在第一趟比较的是26 [17 23 15 19],将无序数列[1原创 2014-03-26 10:03:40 · 533 阅读 · 0 评论 -
希尔排序
希尔排序是插入排序的一种,它的基本思想是将相隔某个“增量d”的记录组成一个子序列,然后对每个子序列进行插入排序,实现跳跃式的移动,使得排序的效率提高。以数组 [10 15 9 14 18 17 7 13]为例第一个增量设为4第一趟排序结束后为:10 15 7 13 18 17 9 14第二趟我们取增量为2第二趟排序结束后:7 13原创 2014-03-26 13:29:58 · 544 阅读 · 0 评论 -
快速排序
快速排序思想是:设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它左边,所有比它大的数都放到它右边,这个过程称为一趟快速排序。然后用同样的方法对左右两个数列进行排序。以数组[56 48 39 59 66 33 76 52 84 17]为例012原创 2014-03-26 19:30:45 · 547 阅读 · 0 评论 -
二分查找
二分查找#include#includeusing namespace std;//二分查找int search(int *p,int n,int key){ int start=0,end=n-1,mid=0; while(start<=end) { mid=(end+start)/2; if(*(p+mid)<key) { start=mid+1;原创 2014-03-30 09:42:07 · 492 阅读 · 0 评论 -
++i与i++性能比较
自增运算符有原创 2014-05-04 16:41:15 · 722 阅读 · 0 评论 -
二叉树基本操作
二叉树#include#includeusing namespace std;typedef char DataType;struct BTree{ DataType data; BTree *left,*right;};//创建二叉树BTree* CreateTree(){ BTree *bt; DataType key; cin>>key; if('#'==k原创 2014-03-30 21:25:55 · 554 阅读 · 0 评论 -
链表操作
单链表的基本操作,包括链表初始化、链表创建、插入节点、在指定位置插入节点、删除指定位置节点、打印链表、求链表长度等。#include#includeusing namespace std;struct ListNode{ int data; ListNode* next;};//链表初始化,头节点为空ListNode* InitList(){ ListNode *hea原创 2014-03-28 10:04:52 · 705 阅读 · 0 评论 -
C语言逗号运算符
在C语言中逗号“,”也是一种运算符,原创 2014-04-26 10:21:58 · 830 阅读 · 0 评论