最近在网易公开课上看斯坦福大学的《编程范式》,外国人讲课思路就是清晰,上了几节课,感觉难度确实比我们普通大学大很多,但是却很有趣,让人能边学边想。 范式编程,交换两个数,利用 void * void Swap (void * lhs,void * rhs,int size) { ...
分类:
编程语言 时间:
2015-03-17 10:15:40
阅读次数:
160
冒泡排序的原理说明:第一趟:依次比较相邻的两个数,如果后面的数比前面的数小,则交换两个数的位置,一趟下来,所有关键字中最大的关键字会在最后,所以第二趟排序可以不考虑脚标最大位的关键字第二趟:重复上述过程,但是第二趟中关键字总数比第一趟中少一个,因为所有关键..
分类:
编程语言 时间:
2015-03-16 06:25:16
阅读次数:
146
#include "stdio.h"#include "stdlib.h"void swap(int *a,int *b)//交换两个数{int t;t=*a;*a=*b;*b=t;}void minheap(int *a,int i) //小根堆的调整,在i节点向上调整,根据一个所给的数组,对数....
分类:
编程语言 时间:
2015-03-14 21:43:47
阅读次数:
353
引入指针学习,依旧是那个几乎每本书上都会提到的交换两个数数值的程序: 1 #include 2 void interchange(int *m,int *n); 3 int main() 4 { 5 int x=1,y=3; 6 7 interchange(&x,&y); ...
分类:
其他好文 时间:
2015-03-12 06:19:36
阅读次数:
123
一.算法思想 对数组的所有元素进行一次遍历,每次遍历将相邻的两个元素进行比较,若为逆序,则交换两个数;因此每次遍历都是将当前未排序的数里面的最大或者最小的数放到最前面。二.算法本质 算法过程需要两个for循环进行控制,第一层for循环i:0~n-1负责控制向前推进遍历比较;第二层for循环:j:0~...
分类:
编程语言 时间:
2015-03-06 20:45:02
阅读次数:
145
Go语言中函数可以返回多个值,这和其它编程语言有很大的不同。对于有其它语言编程经验的人来说,最大的障碍不是学习这个特性,而是很难想到去使用这个特性。简单如交换两个数值的例子:package main import "fmt" func swap(a int, b int) (int, int) {r...
分类:
编程语言 时间:
2015-03-03 09:44:28
阅读次数:
142
题目大意:给出一个数列,支持交换两个数字的操作,问每次操作之后的逆序对数量。
思路:数字比较大,先离散化。然后先求一次总逆序对,每次交换两个数字的时候用树套树维护一下逆序对的总数就可以了。。
好像树套树的常数略大,正解应该是分块。。
CODE:
#include
#include
#include
#include
#define MAX 20010
using...
分类:
其他好文 时间:
2015-01-30 09:18:18
阅读次数:
272
题意:交换两个数,使得交换后的数是偶数且尽可能大;KEY:分情况,1末尾数为偶数,即找到比它小的偶数交换,假如没有比它小的偶数,不用交换。2末尾数是奇数,再分情况,《1》全都是奇数(这个可以在一开始就判断掉),即输出-1,《2》有一个偶数,无论如何谁大谁小都要交换,《3》全部偶数都比奇数大,从n -...
分类:
其他好文 时间:
2015-01-28 19:27:22
阅读次数:
227
奇怪了,做全排列的时候,在交换两个数时用到algorithm中的swap函数,效率竟然比自己写一个swap的效率差,是因为大量进行调用的原因吗?求解....
full_permutation 为我写的计算全排列数量的函数,没有使用algorithm中的swap函数,
nextPerm 使用了algorithm中的next_permutation函数,
full_permutation_...
分类:
其他好文 时间:
2015-01-23 13:32:46
阅读次数:
203