2022年java经典算法汇总 .pdf

上传人:C****o 文档编号:39740627 上传时间:2022-09-07 格式:PDF 页数:8 大小:49KB
返回 下载 相关 举报
2022年java经典算法汇总 .pdf_第1页
第1页 / 共8页
2022年java经典算法汇总 .pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《2022年java经典算法汇总 .pdf》由会员分享,可在线阅读,更多相关《2022年java经典算法汇总 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、java 排序算法的比较import java.util.*;import java.io.*;public class SortAlgorithm static Random rand=new Random();void bubbleSort(int numlist)/冒泡排序算法 int temp;for(int j=1;jnumlist.length;j+)for(int i=0;inumlisti+1)temp=numlisti+1;numlisti+1=numlist;numlist=temp;void selectionSort(int numlist)/选择排序算法 int te

2、mp;for(int i=0;inumlist.length-1;i+)for(int j=i+1;jnumlistj)temp=numlistj;numlistj=numlist;numlist=temp;void insertSort(int numlist)/插入排序算法 int temp,in,out;for(out=1;out0&numlistin-1=temp)numlistin=numlistin-1;-in;numlistin=temp;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8 页 -void display(int num)/打印出排序结果 for(i

3、nt i=0;inum.length;i+)System.out.print(num+);System.out.println();static int pRand(int mod)/生成随即数组 return Math.abs(rand.nextInt()%mod;public static void main(String args)throws IOException SortAlgorithm sortAlgorithm=new SortAlgorithm();int numList=new int10;for(int i=0;inumList.length;i+)numList=pR

4、and(100);/调用 pRand 方法,把随即生成的数据输入到/数组中System.out.println(随即生成的数组是:);/打印出原数组,for(int j=0;jnumList.length;j+)System.out.print(numListj+);System.out.println();long begin=System.currentTimeMillis();/排序开始时间,调用系统的当前时间sortAlgorithm.bubbleSort(numList);/执行冒泡排序long end=System.currentTimeMillis();/排序结束时间,调用系统当

5、前时间System.out.println(冒泡排序用时为:+(end-begin);/排序用时System.out.println(排序后的数组为:);sortAlgorithm.display(numList);begin=System.currentTimeMillis();sortAlgorithm.selectionSort(numList);end=System.currentTimeMillis();System.out.println(选择排序用时为:+(end-begin);System.out.println(排序后的数组为:);sortAlgorithm.display(

6、numList);begin=System.currentTimeMillis();sortAlgorithm.insertSort(numList);end=System.currentTimeMillis();System.out.println(插入排序用时为:+(end-begin);System.out.println(排序后的数组为:);sortAlgorithm.display(numList);题目如下:用1、2、2、3、4、5 这六个数字,用java 写一个 main 函数,打印出所有不同名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -的排列,如:51

7、2234、412345 等,要求:4 不能在第三位,3 与 5 不能相连。static int bits=new int 1,2,3,4,5;/*param args*/public static void main(String args)sort(,bits);private static void sort(String prefix,int a)if(a.length=1)System.out.println(prefix+a0);for(int i=0;i a.length;i+)sort(prefix+a,copy(a,i);private static int copy(int

8、a,int index)int b=new inta.length-1;System.arraycopy(a,0,b,0,index);System.arraycopy(a,index+1,b,index,a.length-index-1);return b;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -二分法查找示例成员类:package com.junglesong;public class Member implements Comparable private String name;private int age;public Member(String n

9、ame,int age)this.name=name;this.age=age;/*/*实现成员比较*/public int compareTo(Object obj)Member another=(Member)obj;return pareTo(another.name);/*/*实现成员相等运算*/public boolean equals(Object obj)Member another=(Member)obj;return this.name.equals(another.name);public String toString()return 名=+name+年龄=+age;pu

10、blic int getAge()return age;public void setAge(int age)this.age=age;public String getName()return name;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 8 页 -public void setName(String name)this.name=name;二分查找类:package com.junglesong;import java.util.ArrayList;import java.util.List;/*/*二分查找示例二(对链表进行查找)*author:sitinspr

11、ing()*date:2008-3-8*/public class BinSearch2 public static void main(String args)/欲查找的链表List members=new ArrayList();members.add(new Member(Andy,21);members.add(new Member(Bill,22);members.add(new Member(Cindy,23);members.add(new Member(Douglas,24);members.add(new Member(Felex,25);members.add(new Me

12、mber(Green,26);/测试链表List tempList=new ArrayList();tempList.add(new Member(Bill,22);tempList.add(new Member(Cindy,23);tempList.add(new Member(Douglas,24);tempList.add(new Member(Felex,25);tempList.add(new Member(Hill,26);for(Member member:tempList)System.out.println(成员+member+的下标为+binSearch(members,m

13、ember);/*/*二分查找*param sortedArray 已排序的欲查找的链表名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 8 页 -*param seachV alue 查找的值*return 找到的元素下标,若找不到则返回-1*/public static int binSearch(List sortedList,Member seachValue)/左边界int leftBound=0;/右边界int rightBound=sortedList.size()-1;/当前下标位置int curr;while(true)/定位在左边界和右边界中间curr=(lef

14、tBound+rightBound)/2;if(sortedList.get(curr).equals(seachValue)/找到值return curr;else if(leftBoundrightBound)/左边界大于右边界,已经找不到值return-1;else if(sortedList.get(curr).compareTo(seachV alue)0)/当当前下标对应的值小于查找的值时,缩短左边界leftBound=curr+1;else/当当前下标对应的值大于查找的值时,缩短右边界rightBound=curr-1;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共

15、 8 页 -选择排序public class NumSort public static void main(String args)int a=new intargs.length;for(int i=0;iargs.length;i+)ai=Integer.parseInt(argsi);print(a);selectionSort(a);print(a);private static void print(int a)for(int i=0;ia.length;i+)System.out.print(ai+);System.out.println();/-选择排序算法1-/*privat

16、e static void selectionSort(int a)for(int i=0;ia.length;i+)for(int j=i+1;ja.length;j+)if(ajai)int temp=ai;ai=aj;aj=temp;*/名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 8 页 -/-选择排序算法2-/*private static void selectionSort(int a)for(int i=0;ia.length;i+)int k=i;for(int j=k+1;ja.length;j+)if(ajak)k=j;if(k!=i)int temp=ai;ai=ak;ak=temp;*/-选择排序算法3-private static void selectionSort(int a)int k,temp;for(int i=0;ia.length;i+)k=i;for(int j=k+1;ja.length;j+)if(ajak)k=j;if(k!=i)temp=ai;ai=ak;ak=temp;/-名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 8 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁