八大算法原理详解 交换函数:注意要按引用传递,否则无法真正交换两个数的值 1、直接插入算法 2、希尔排序算法【暂缺】 3、直接选择排序算法 4、堆排序算法【暂缺】 5、冒泡排序算法 6、快速排序算法 7、归并排序算法【注意:数组按值传输】 8、基数排序算法【暂缺】 ...
分类:
编程语言 时间:
2017-10-01 17:38:31
阅读次数:
370
一、题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 二、思路 此题可以用类似冒泡排序的算法来解答。遍历数组,当相邻两个数,前面的数是偶数,后面的数是奇数时,交换两个数。 ...
分类:
编程语言 时间:
2017-10-01 13:41:29
阅读次数:
160
1. 创建中间变量 这是最快也是最简单的办法,例如: #include<stdio.h> int main(){ int a=10; int b=20; int temp; printf("交换前a,b的值为:\n"); printf("a=%d\n",a); printf("b=%d\n",b); ...
分类:
编程语言 时间:
2017-09-25 13:15:21
阅读次数:
190
交换两个数的值,不适用第三个变量 一、源代码:SwapTwoNumber.java 二、运行效果 ...
分类:
其他好文 时间:
2017-09-24 23:44:43
阅读次数:
388
【算法】数学置换 【题意】给定n个数,要求通过若干次交换两个数的操作得到排序后的状态,每次交换代价为两数之和,求最小代价。 【题解】 考虑置换的定义:置换就是把n个数做一个全排列。 从原数组到排序数组的映射就是经典的置换,这样的置换一定能分解成循环的乘积。 为什么任意置换都可以这样分解:原数组的每个 ...
分类:
编程语言 时间:
2017-09-21 19:30:57
阅读次数:
138
/**********【题目】试写一算法,如果三个整数a,b和c的值不是依次非递增的,则通过交换,令其为非递增。***********/ ``` void Descend(int &a, int &b, int &c)/* 通过交换,令 a >= b >= c */{ swap(a,b); swap ...
分类:
其他好文 时间:
2017-09-20 01:03:04
阅读次数:
199
收集这些有用的捷径技巧 1. 原地进行交换两个数字 我们对赋值的右侧进行一个新的元组,左侧解析(unpack)那个(未被引用的)元组到变量 <a> 和 <b> 赋值完成时,新的元组变成了未被引用状态并且被标记没用处,最终完成了变量的交换 2. 链状比较操作符 3. 使用三元操作符来进行条件赋值 4. ...
分类:
编程语言 时间:
2017-09-08 20:34:41
阅读次数:
271
//字符串版本结合使用substr,strlen两个方法实现$a="a";$b="b";echo‘交换前$a:‘.$a.‘,$b:‘.$b.‘<br/>‘;$a.=$b;$b=substr($a,0,(strlen($a)-strlen($b)));$a=substr($a,strlen($b));echo‘交换后$a:‘.$a.‘,$b:‘.$b.‘<br/>‘;echo‘-----------------------<br/>..
分类:
Web程序 时间:
2017-09-03 23:43:05
阅读次数:
170
某天在某处看到一个C语言问题,要求将字符串倒序,说是倒序函数有bug,当执行交换两个数的时候会出现core dump,开始看到这个错误以为指针错误,但是别人调试过发现指针并没有问题,然后一下就没找到问题所在,于是回来就用gdb调试了一下,函数到关键部分如下: 拿到linux下写了个完整程序,如下 编 ...
分类:
编程语言 时间:
2017-08-24 00:17:09
阅读次数:
186
代码: 冒泡排序应该是最熟悉的排序算法了吧,所以基本上写这个算法没遇到什么问题。值得注意的是,python中交换两个数的顺序可以通过这种方式实现,这种小tip可以学习一下。 时间复杂度O(n ** 2) 空间复杂读O (1) 稳定排序算法。 说明:稳定排序大概有四种:直接选择排序、冒泡排序、归并排序 ...
分类:
编程语言 时间:
2017-08-04 17:35:50
阅读次数:
214