欢迎来到天天文库
浏览记录
ID:55414853
大小:104.93 KB
页数:7页
时间:2020-05-12
《选择排序算法实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、算法设计与分析基础实验报告应用数学学院姓名:学号:班级:二零一六年六月实验选择排序算法一、实验性质设计二、实验学时14学时三、实验目的1、掌握选择排序的方法和原理。2、掌握java语言实现该算法的一般流程。四、实验内容1、数组的输入。2、输入、输出的异常处理。3、选择排序的算法流程。4、运行结果的输出。五、实验报告Ⅰ、算法原理首先扫描整个列表,在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。然后从第二个元素开始扫描列表,找到最后n-1个元素中的最小元素,在和第二个元素交换位置,把第二小的元
2、素放在它的最终位置上。一般来说,在对该列表做第i次扫描的时候(i的值从0到n-2),该算法在最后n-i个元素中寻找最小元素,然后拿它和Ai交换,在n-1遍以后就被排序好了。Ⅱ、书中源代码算法SelectionSort(A[0..n-1])//该算法用选择排序对给定的数组排序//输入:一个可排序数组A[0..n-1]//输出:升序排列的数组A[0..n-1]fori←0ton-2domin←iforj←i+1ton-1doifA[j]3、uanze{publicstaticvoidmain(String[]args){intn=5;inta[]=newint[n];inti=0,j=0;intsm=0,min=0;System.out.println("请输入一组数字:");Scannersc=newScanner(System.in);try{while(i4、]=sm;}System.out.println("选择排序输出结果为:");for(i=0;i5、所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。实验三折半查找算法一、实验性质设计二、实验学时14学时三、实验目的1、掌握折半查找算法的方法和原理。2、掌握java语言实现该算法的一般流程。四、实验内容1、给定一个数组。2、输入、输出的异常处理。3、折半查找的算法流程。4、运行结果的输出。五、实验报告Ⅰ、算法原理折半查找法是效率较高的一种查找方法。假设有已经按照从小到大的顺序排列好的五个整数a0~ax,要查找的数是K,通过比较查找键K和数组中间元素A[m]来完成查找工作。如果他们相等,算法结束,否则,如果K6、果K>A[m],则对数组的后半部分执行该操作。Ⅱ、书中源代码算法BinarySearch(A[0..n-1],K)//实现非递归的折半查找//输入:一个可排序数组A[0..n-1]和一个查找键K//输出:一个数组的下标,该元素等于K;如果没有该元素,则返回-1l←0;r←n-1whilel≤rdom←[(l+r)/2]ifK=A[m]returnmelseifK7、]){intk=0,i=0,m=0;inta[]={15,25,36,98,108,250,360,782};ints=a.length-1;System.out.println("请输入一个需要查找的数字:");Scannersc=newScanner(System.in);try{k=sc.nextInt();while(i<=s){m=(int)((i+s)/2);if(k==a[m]){System.out.print("该数字在数组中的下标为:"+m);System.exit(-1);}elseif(k
3、uanze{publicstaticvoidmain(String[]args){intn=5;inta[]=newint[n];inti=0,j=0;intsm=0,min=0;System.out.println("请输入一组数字:");Scannersc=newScanner(System.in);try{while(i4、]=sm;}System.out.println("选择排序输出结果为:");for(i=0;i5、所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。实验三折半查找算法一、实验性质设计二、实验学时14学时三、实验目的1、掌握折半查找算法的方法和原理。2、掌握java语言实现该算法的一般流程。四、实验内容1、给定一个数组。2、输入、输出的异常处理。3、折半查找的算法流程。4、运行结果的输出。五、实验报告Ⅰ、算法原理折半查找法是效率较高的一种查找方法。假设有已经按照从小到大的顺序排列好的五个整数a0~ax,要查找的数是K,通过比较查找键K和数组中间元素A[m]来完成查找工作。如果他们相等,算法结束,否则,如果K6、果K>A[m],则对数组的后半部分执行该操作。Ⅱ、书中源代码算法BinarySearch(A[0..n-1],K)//实现非递归的折半查找//输入:一个可排序数组A[0..n-1]和一个查找键K//输出:一个数组的下标,该元素等于K;如果没有该元素,则返回-1l←0;r←n-1whilel≤rdom←[(l+r)/2]ifK=A[m]returnmelseifK7、]){intk=0,i=0,m=0;inta[]={15,25,36,98,108,250,360,782};ints=a.length-1;System.out.println("请输入一个需要查找的数字:");Scannersc=newScanner(System.in);try{k=sc.nextInt();while(i<=s){m=(int)((i+s)/2);if(k==a[m]){System.out.print("该数字在数组中的下标为:"+m);System.exit(-1);}elseif(k
4、]=sm;}System.out.println("选择排序输出结果为:");for(i=0;i5、所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。实验三折半查找算法一、实验性质设计二、实验学时14学时三、实验目的1、掌握折半查找算法的方法和原理。2、掌握java语言实现该算法的一般流程。四、实验内容1、给定一个数组。2、输入、输出的异常处理。3、折半查找的算法流程。4、运行结果的输出。五、实验报告Ⅰ、算法原理折半查找法是效率较高的一种查找方法。假设有已经按照从小到大的顺序排列好的五个整数a0~ax,要查找的数是K,通过比较查找键K和数组中间元素A[m]来完成查找工作。如果他们相等,算法结束,否则,如果K6、果K>A[m],则对数组的后半部分执行该操作。Ⅱ、书中源代码算法BinarySearch(A[0..n-1],K)//实现非递归的折半查找//输入:一个可排序数组A[0..n-1]和一个查找键K//输出:一个数组的下标,该元素等于K;如果没有该元素,则返回-1l←0;r←n-1whilel≤rdom←[(l+r)/2]ifK=A[m]returnmelseifK7、]){intk=0,i=0,m=0;inta[]={15,25,36,98,108,250,360,782};ints=a.length-1;System.out.println("请输入一个需要查找的数字:");Scannersc=newScanner(System.in);try{k=sc.nextInt();while(i<=s){m=(int)((i+s)/2);if(k==a[m]){System.out.print("该数字在数组中的下标为:"+m);System.exit(-1);}elseif(k
5、所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。实验三折半查找算法一、实验性质设计二、实验学时14学时三、实验目的1、掌握折半查找算法的方法和原理。2、掌握java语言实现该算法的一般流程。四、实验内容1、给定一个数组。2、输入、输出的异常处理。3、折半查找的算法流程。4、运行结果的输出。五、实验报告Ⅰ、算法原理折半查找法是效率较高的一种查找方法。假设有已经按照从小到大的顺序排列好的五个整数a0~ax,要查找的数是K,通过比较查找键K和数组中间元素A[m]来完成查找工作。如果他们相等,算法结束,否则,如果K6、果K>A[m],则对数组的后半部分执行该操作。Ⅱ、书中源代码算法BinarySearch(A[0..n-1],K)//实现非递归的折半查找//输入:一个可排序数组A[0..n-1]和一个查找键K//输出:一个数组的下标,该元素等于K;如果没有该元素,则返回-1l←0;r←n-1whilel≤rdom←[(l+r)/2]ifK=A[m]returnmelseifK7、]){intk=0,i=0,m=0;inta[]={15,25,36,98,108,250,360,782};ints=a.length-1;System.out.println("请输入一个需要查找的数字:");Scannersc=newScanner(System.in);try{k=sc.nextInt();while(i<=s){m=(int)((i+s)/2);if(k==a[m]){System.out.print("该数字在数组中的下标为:"+m);System.exit(-1);}elseif(k
6、果K>A[m],则对数组的后半部分执行该操作。Ⅱ、书中源代码算法BinarySearch(A[0..n-1],K)//实现非递归的折半查找//输入:一个可排序数组A[0..n-1]和一个查找键K//输出:一个数组的下标,该元素等于K;如果没有该元素,则返回-1l←0;r←n-1whilel≤rdom←[(l+r)/2]ifK=A[m]returnmelseifK7、]){intk=0,i=0,m=0;inta[]={15,25,36,98,108,250,360,782};ints=a.length-1;System.out.println("请输入一个需要查找的数字:");Scannersc=newScanner(System.in);try{k=sc.nextInt();while(i<=s){m=(int)((i+s)/2);if(k==a[m]){System.out.print("该数字在数组中的下标为:"+m);System.exit(-1);}elseif(k
7、]){intk=0,i=0,m=0;inta[]={15,25,36,98,108,250,360,782};ints=a.length-1;System.out.println("请输入一个需要查找的数字:");Scannersc=newScanner(System.in);try{k=sc.nextInt();while(i<=s){m=(int)((i+s)/2);if(k==a[m]){System.out.print("该数字在数组中的下标为:"+m);System.exit(-1);}elseif(k
此文档下载收益归作者所有