C语言快速排序
摘要:复习快速排序,用C语言实现:#include int quicksort(int begin, int end, int a[], int len);void main(){ int a[] = {33, 22, 6, 5, 7, 3, 8, 9}; int len = sizeof(a)/sizeof(int); int i=0; int j=len-1; int pivot; pivot = quicksort(i, j, a, len);//printf("\npivot:%d\n", pivot); //for(i=0; ikey && j>=
阅读全文
一些需要注意的C知识点
摘要:1.数组在作为参数传递到函数时,会退化为一个指针。也就是说,一旦进入函数内部,数组已经变为了一个指针。其实是在参数传递的时候进行了浅拷贝,编译器会声明一个指针指向该数组,在函数内部所有的操作都是对该临时指针的操作。代码示例:#include #include #include #define N 100void fun1(int *a);void main(){ int a[N]; printf("%d\n", sizeof(a)); fun1(a);}void fun1(int *a){ printf("%d\n", sizeof(a));}View
阅读全文
大数相乘的算法实现
摘要:需求:2个大的整数(超过计算机内置的整数类型的表示范围,这里用字符数组表示)相乘,如下所示"234232398382893809203900923093290" * "23"。计算其结果。基本思想为把字符数组转化为int数组或者是byte数组(用byte即可,因为只需要存储0-9之间的数字)。然后两...
阅读全文
猜猜两道Java基础面试题的结果
摘要:class TA { public String s = "A"; public String getS() { return s; }}class TB extends TA { public String s = "B"; public String getS() { return s; }}public class TestInheritance { public static void main(String[] args) { TA a = new TA(); TB b = new TB...
阅读全文
Java中线程的锁和数据库中的事务隔离级别
摘要:当涉及到两个或多个线程操作同一个资源时,就会出现锁的问题。数据库中的某一条记录或者是某一个对象中的字段,可以修改,也可以读取,一般情况下,读取的那个方法应该加锁(即用synchronized互斥),而读取的那个方法则不需要加锁。允许多个线程同时读取,而不允许同时进行修改。对应的数据库事务隔离级别应该...
阅读全文
为什么socket编程要用到多线程
摘要:不得不佩服计算机先驱的设计:socket编程为什么需要多线程。如果只有一个ServerSocket线程,那么如下代码: public void start() throws Exception { ServerSocket serverSocket = new ServerSocket(8888); System.out.println("socket服务器启动在端口8888"); while (true) { Socket socket = serverSocket.accept(); System.out.println("接收到的socket是 :"
阅读全文