![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法&数据结构
quanquanfly
这个作者很懒,什么都没留下…
展开
-
冒泡
public class MaoPao { public static void swap(int i,int j, int []a){ int temp; if(a[i]>a[j]){ temp = a[i]; a[i] = a[j]; a[j] = temp; } } public static int[] maopao(int []a){ for(int i = a.length; i>0;i--){ for(int j =原创 2010-10-24 13:34:00 · 432 阅读 · 0 评论 -
输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列
public class Out { public static void out(int i,int v){ for(int n = 1;;n++){ int k =(2*v-n*n+n)/(2*n); int d = (2*v-n*n+n)%(2*n); if(i==k&&d==0){ for(int l = 0;lk){ break; } } } public static void main(String []args原创 2010-10-24 15:08:00 · 793 阅读 · 0 评论 -
排序复杂度详解(1)
<br />稳定排序算法是指在排序过程中两个排序关键字相同的元素,在排序的过程中位置不发生变化。<br />1.直接插入排序:<br /> 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。<br /> 第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程,是稳定排序。<br /> <br />2.直接选择排序:<br /原创 2010-11-11 15:44:00 · 1992 阅读 · 0 评论 -
排序复杂度详解(2)
<br />4.冒泡排序:<br /> 是一种简单的稳定的交换排序,其排序过程为:对于相邻的元素进行大小比较,如果满足排序要求,则不进行交换,否则将两个数进行交换。<br /> 如序列{30, 12, 52, 23, 15, 65, 31, 58, 20,63}:<br /> 以下是第一趟:30跟12比较,30>12交换位置,30<52,不交换位置,以此类推,将序列中最大的数放到最后位置,共执行n - 1次比较。共需要做 n - 1 次起泡。<br /><br /> 最好原创 2010-11-11 17:24:00 · 1711 阅读 · 0 评论 -
平均查找长度详解
<br />1.顺序查找:<br />从表的一端开始,顺序扫描线性表,依次将扫描到的节点关键字和给定值k相比较。<br />等概率条件下...平均查找长度:ASL = (n+....+2+1)/n= (n+1)/2;<br />2.二分法查找:<br />前提是线性表是有序表。假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。<br />在等概率条件下...原创 2010-11-11 20:24:00 · 15640 阅读 · 4 评论 -
字符串中出现最多的字符
<br /> 一个字符串参数(value)由字母(a-z,A-Z)组成,且最大字符位数为40,要求写一个函数(maxLength)返回该参数中连续相同字母的最大个数及该字母,如果最大位数有多个,则返回第一个。例:字符串“aaaddxxxxddddxxxx”,返回值为:“x,4”。<br />public class Test12 { static String str = "aabbccaa"; public static void getMax(int maxLength){ ch原创 2010-11-17 23:38:00 · 778 阅读 · 0 评论