摘要:1、死循环实现:View Code 1 //二分法查找 2 /********************算法描述*********************** 3 假设一个没有重复的序列 4 1、确定小大边界,小边界初始为0,大边界初始为length,以及中间边界 5 2、将查找的数字与小大中比较,如果刚好等于,则返回 6 3、如果比中间边界的值小,则小边界不变,中间边界作为大边界 7 4、否则中间边界作为小边界,大边界不变 8 补充,如果大边界-大边界的差为1,则不需要继续比较了,返回没有找到 9 5、循环到2 10 *************************************.
阅读全文
06 2012 档案
摘要:1 //二分法折半插入排序 2 /*折半插入算法思想 3 1、初始化:设定有序区为第一个元素,设定无序区为后面所有元素 4 2、依次取无序区的每个元素 5 3、通过二分法查找有序区,返回比这个数小的最大数 6 4、保留此位置数据 7 5、从此位置的元素到有序区的最后一个元素,依次后移 8 6、用保留的数据填充此位置 9 */10 void sortByInsertHalf(int array[],int arraySize)11 {12 int iMax,iMid,iMin;13 for(int i=1;i<arraySize;i++)14 {15 i...
阅读全文
摘要:1 //冒泡排序 2 /*******************算法描述********************** 3 1、遍历无序序列,依次取这个数和它的下一个数进行比较,如果这个数比下数大,则交换 4 2、循环1,直到length次数(我们称之为趟数)为止, 5 补充1:如果其中任何一趟,没有发生交换,则表示排序成功 6 补充2:其中每一趟,因为最大值已经放在最后了,所以从效率上来说,应该比较次数少一次 7 *************************************************/ 8 void sortByBubble(int array[],int leng.
阅读全文
摘要:1 //交换排序 2 /*******************算法描述********************** 3 1、从第一个元素开始,依次与后续每个元素两两比较,若比后续元素大,则交换 4 2、循环:从第二个元素开始,重复上述动作1 5 *************************************************/ 6 void sortByExchange(int array[],int length) 7 { 8 int iTemp; 9 for(int i=0;i<length;i++)10 {11 for(int ...
阅读全文
摘要:1 //选择排序(选择无序区最小值) 2 /**********算法描述*********************************** 3 //1、依次取无序区中的第一个元素array[i] i=0 to length,与后续元素中的最小值比较 4 //2、若比后续中的最小值大,则交换该值array[i]与最小值 5 //循环1: i++ 6 ******************************************************/ 7 void sortBySelect(int array[],int length) 8 { 9 int iMinInde...
阅读全文
摘要:结构体(struct)的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。先看下面定义的两个结构体. struct { char a; short b; char c; }S1; struct { chara; char b; short c; }S2;分别用程序测试得出sizeof(S1)=6 , sizeof(S2)=4 可见,虽然两个结构体所含的元素相同,但因为其中存放的元素类型顺序不一样,所占字节也出现差异。这就是字节对齐原因。通过字节对齐,有助于加快计算机的取数速度,否则就得多花指令周期。字节对齐原则结构体默认的字节对齐一般满足三个准则:...
阅读全文
摘要:用scanf,fscanf,fprintf特别要注意格式化的问题,不恰当使用会导致异常
阅读全文
浙公网安备 33010602011771号