• 20192319 2020-2021-1《数据结构及面向对象程序设计》实验七报告


    实验七报告

    • 课程:《程序设计与数据结构》
    • 班级: 1923
    • 姓名: 李歆韵
    • 学号:20192319
    • 实验教师:王志强
    • 实验日期:2020年11月18日
    • 必修/选修: 必修

    1.实验内容

    1. 定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。
      要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位
      提交运行结果图。
      重构你的代码

    2. 把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1823.G2301)
      把测试代码放test包中
      重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种)

    3. 参考http://www.cnblogs.com/maybe2030/p/4715035.html ,学习各种查找算法并在Searching中补充查找算法并测试
      提交运行结果截图

    4. 补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)
      测试实现的算法(正常,异常,边界)
      提交运行结果截图(如果编写多个排序算法,即使其中三个排序程序有瑕疵,也可以酌情得满分)

    5. 编写Android程序对实现各种查找与排序算法进行测试
      提交运行结果截图
      推送代码到码云(选做,加分)

    2.实验过程与结果

    1. 定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。
      要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位
      代码:
    public class Searching {
        private int List[];
        private int searchElement;
        private int listSize;
        private int locate;
    
        public Searching(int[] list, int searchElement) {
            List = list;
            this.searchElement = searchElement;
            listSize= List.length;
        }
    
        public String linearSearch(){
            for (int i=listSize-1;;i--){
                if (searchElement==List[i]){
                    locate=i;
                    return "Element founded: " + "List[" + i + "]";
                }
                else if (i==0){
                    if (searchElement==List[i]){
                        locate=i;
                        return "Element founded: " + List[i];
                    }
                    else
                    return "Not founded.";
                }
            }
        }
    }
    
    import java.util.Arrays;
    
    public class Sorting{
        private int List[];
        private int size;
    
        public Sorting(int[] list) {
            List = list;
            size=List.length;
        }
    
        public String selectionSort(){
            int temp = 0,tempx;
            for (int i=0;i<size-1;i++){
                temp=i;
                for (int j=i+1;j<size;j++){
                    if (List[temp]>List[j]){
                        temp=j;
                    }
                }
                if (temp == 0) {
                    continue;
                }
                else {
                    tempx=List[i];
                    List[i]=List[temp];
                    List[temp]=tempx;
                }
            }
            return Arrays.toString(List);
        }
    }
    

    1. 把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1823.G2301)
      把测试代码放test包中
      重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种)
      代码:
    import sy7.sy7_2.cn.edu.besti.cs1923.L2319.Searching;
    import sy7.sy7_2.cn.edu.besti.cs1923.L2319.Sorting;
    import junit.framework.TestCase;
    
    public class test extends TestCase{
    
        @org.junit.Test
        public void testSearching(){
            int a1[]={11,2,1,1,1,1,1,1,1,1,1,2319};
            int a2[]={12,1,2,1,1,1,1,1,1,1,1,2319};
            int a3[]={13,1,1,2,1,1,1,1,1,1,1,2319};
            int a4[]={14,1,1,1,2,1,1,1,1,1,1,2319};
            int a5[]={15,1,1,1,1,2,1,1,1,1,1,2319};
            int a6[]={16,1,1,1,1,1,2,1,1,1,1,2319};
            int a7[]={17,2,1,1,1,1,1,2,1,1,1,2319};
            int a8[]={18,1,2,1,1,1,1,1,2,1,1,2319};
            int a9[]={19,1,1,2,1,1,1,1,1,2,1,2319};
            int a10[]={20,1,1,1,2,1,1,1,1,1,2,2319};
    
            assertEquals(new Searching(a1,2).linearSearch(),"Element found: " + "List[" + 1 + "]");
            assertEquals(new Searching(a1,11).linearSearch(),"Element found: " + "List[" + 0 + "]");
            assertEquals(new Searching(a1,2319).linearSearch(),"Element found: " + "List[" + 11 + "]");
            assertEquals(new Searching(a1,404).linearSearch(),"Not found.");
    
            assertEquals(new Searching(a2,2).linearSearch(),"Element found: " + "List[" + 2 + "]");
            assertEquals(new Searching(a2,12).linearSearch(),"Element found: " + "List[" + 0 + "]");
            assertEquals(new Searching(a2,2319).linearSearch(),"Element found: " + "List[" + 11 + "]");
            assertEquals(new Searching(a2,404).linearSearch(),"Not found.");
    
            assertEquals(new Searching(a3,2).linearSearch(),"Element found: " + "List[" + 3 + "]");
            assertEquals(new Searching(a3,13).linearSearch(),"Element found: " + "List[" + 0 + "]");
            assertEquals(new Searching(a3,2319).linearSearch(),"Element found: " + "List[" + 11 + "]");
            assertEquals(new Searching(a3,404).linearSearch(),"Not found.");
    
            assertEquals(new Searching(a4,2).linearSearch(),"Element found: " + "List[" + 4 + "]");
            assertEquals(new Searching(a4,14).linearSearch(),"Element found: " + "List[" + 0 + "]");
            assertEquals(new Searching(a4,2319).linearSearch(),"Element found: " + "List[" + 11 + "]");
            assertEquals(new Searching(a4,404).linearSearch(),"Not found.");
    
            assertEquals(new Searching(a5,2).linearSearch(),"Element found: " + "List[" + 5 + "]");
            assertEquals(new Searching(a5,15).linearSearch(),"Element found: " + "List[" + 0 + "]");
            assertEquals(new Searching(a5,2319).linearSearch(),"Element found: " + "List[" + 11 + "]");
            assertEquals(new Searching(a5,404).linearSearch(),"Not found.");
    
            assertEquals(new Searching(a6,2).linearSearch(),"Element found: " + "List[" + 6 + "]");
            assertEquals(new Searching(a6,16).linearSearch(),"Element found: " + "List[" + 0 + "]");
            assertEquals(new Searching(a6,2319).linearSearch(),"Element found: " + "List[" + 11 + "]");
            assertEquals(new Searching(a6,404).linearSearch(),"Not found.");
    
            assertEquals(new Searching(a7,2).linearSearch(),"Element found: " + "List[" + 7 + "]");
            assertEquals(new Searching(a7,17).linearSearch(),"Element found: " + "List[" + 0 + "]");
            assertEquals(new Searching(a7,2319).linearSearch(),"Element found: " + "List[" + 11 + "]");
            assertEquals(new Searching(a7,404).linearSearch(),"Not found.");
    
            assertEquals(new Searching(a8,2).linearSearch(),"Element found: " + "List[" + 8 + "]");
            assertEquals(new Searching(a8,18).linearSearch(),"Element found: " + "List[" + 0 + "]");
            assertEquals(new Searching(a8,2319).linearSearch(),"Element found: " + "List[" + 11 + "]");
            assertEquals(new Searching(a8,404).linearSearch(),"Not found.");
    
            assertEquals(new Searching(a9,2).linearSearch(),"Element found: " + "List[" + 9 + "]");
            assertEquals(new Searching(a9,19).linearSearch(),"Element found: " + "List[" + 0 + "]");
            assertEquals(new Searching(a9,2319).linearSearch(),"Element found: " + "List[" + 11 + "]");
            assertEquals(new Searching(a9,404).linearSearch(),"Not found.");
    
            assertEquals(new Searching(a10,2).linearSearch(),"Element found: " + "List[" + 10 + "]");
            assertEquals(new Searching(a10,20).linearSearch(),"Element found: " + "List[" + 0 + "]");
            assertEquals(new Searching(a10,2319).linearSearch(),"Element found: " + "List[" + 11 + "]");
            assertEquals(new Searching(a10,404).linearSearch(),"Not found.");
            System.out.println("Searching test passed.");
        }
    
        @org.junit.Test
        public void testSorting(){
            int a1[] = {1,4,5,2319,8};
            int a2[] = {4,5,99,2,2319};
            int a3[] = {2319,2318};
            int a4[] = {4,5,0,2319,1,2};
            int a5[] = {25,18,33,65,1,2319};
            int a6[] = {44,22,2319,8,47,54};
            int a7[] = {27,33,55,23,2319};
            int a8[] = {28,19,48,33,2319};
            int a9[] = {32,55,76,45,2319};
            int a10[] = {45,67,55,23,2319,24};
            assertEquals("[1, 4, 5, 8, 2319]",new Sorting(a1).selectionSort());
            assertEquals("[2, 4, 5, 99, 2319]",new Sorting(a2).selectionSort());
            assertEquals("[2318, 2319]",new Sorting(a3).selectionSort());
            assertEquals("[0, 1, 2, 4, 5, 2319]",new Sorting(a4).selectionSort());
            assertEquals("[1, 18, 25, 33, 65, 2319]",new Sorting(a5).selectionSort());
            assertEquals("[8, 22, 44, 47, 54, 2319]",new Sorting(a6).selectionSort());
            assertEquals("[23, 27, 33, 55, 2319]",new Sorting(a7).selectionSort());
            assertEquals("[19, 28, 33, 48, 2319]",new Sorting(a8).selectionSort());
            assertEquals("[32, 45, 55, 76, 2319]",new Sorting(a9).selectionSort());
            assertEquals("[23, 24, 45, 55, 67, 2319]",new Sorting(a10).selectionSort());
            System.out.println("Sorting test passed.");
        }
    }
    



    1. 参考http://www.cnblogs.com/maybe2030/p/4715035.html ,学习各种查找算法并在Searching中补充查找算法并测试
      提交运行结果截图

    2. 补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)
      测试实现的算法(正常,异常,边界)
      提交运行结果截图(如果编写多个排序算法,即使其中三个排序程序有瑕疵,也可以酌情得满分)

    3.其它

    这次的实验涉及到多种查找和排序的方法,不同的方法有不同的逻辑和效率,当我们需要进行更高层次的编程工作的时候,就需要锻炼逻辑思维能力,掌握较为复杂但是能够提高程序性能的算法。

    参考资料

  • 相关阅读:
    Java面试知识点总结
    Log4j常用配置及使用
    Eclipse+tomcat+axis2进行web service部署
    iframe内点击a标签禁止滚动到顶部
    VScode首选项
    Bookmarks
    VScode常用插件
    slideout
    bs-loading
    iPhone X 上删除白条
  • 原文地址:https://www.cnblogs.com/Tempo-Alex/p/14050031.html
Copyright © 2020-2023  润新知