
算法
jiangzh1982
这个作者很懒,什么都没留下…
展开
-
Java中的快速排序
[size=medium]快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。最坏情况的时间复杂度为O(n2),最好情况时间复杂度为O(nlog2n)。 另外 java没指针概念 可以认为是句柄 ...原创 2011-11-14 16:50:58 · 93 阅读 · 0 评论 -
Java 冒泡排序
冒泡的思想精髓就是数组中相临的两个数依次相比较,如果左边的数小于右边的数,就将两个数的位置交换,然后继续比较,如果不小于,则不做交换,跳出本次循环,继续用下一位置的数与相临的数做比较,依此类推下去。按这种规则找下去,每轮冒泡会将最小的数冒到最后面。如下代码即为降序冒泡法: public class ArraySort1{ public static void main(String[] args...原创 2011-11-15 11:05:07 · 95 阅读 · 0 评论 -
交换两个数不使用第三方变量
题目很简单:-----------------------------------有两个整型变量:int a=2^31-1; int b=-2^31;要求不通过第三方变量,交换a,b的值?-------------------------------------------------- 思路:不使用第三方变量,肯定在a,b上做文章,可以在一个变量上获取跟a,b有某种关系的值,再通过某种关...原创 2011-11-15 14:04:59 · 185 阅读 · 0 评论 -
任意10进制的数,然后打印其2进制形式的时候里面包含多少个1
具体做法有两种: 方法一: public class A{ public static void main(String[] args){ print(25);//25是任意给的一个10进制数 } public static void print(int n){ StringBuffer str=new StringBuffer(); int k=0; while(n>0){ ...原创 2011-11-15 15:36:26 · 149 阅读 · 0 评论 -
插入排序算法
插入排序 Insertion Sort 插入排序的基本思想是,经过i-1遍处理后,L[1..i-1]己排好序。第i遍处理仅将L[i]插入L[1..i-1]的适当位置,使得L[1..i] 又是排好序的序列。要达到这个目的,我们可以用顺序比较的方法。首先比较L[i]和L[i-1],如果L[i-1]≤ L[i]騆[1..i]已排好序,第i遍处理就结束了;否则交换L[i]与L[i-1]的位置,继...原创 2011-11-15 16:35:25 · 145 阅读 · 0 评论