• 2022-07-15 第六组 润土 Java03数据结构学习笔记


    数据结构:

              数组:最基本的数据结构(线性表)
              链表:单向链表,双向链表
              树:二叉树
              图:深度优先遍历、广度优先遍历
      查找:
              线性查找
              折半查找
      排序:
            冒泡排序*
            快速排序
            插入排序*
            选择排序*
            希尔排序
            堆排序
            归并排序
            桶排序
    

    1、查找

    线性查找:
    
        int [] arr=new int []{1,58,46,33,10,5,-58};
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入一个数:");
        int number=sc.nextInt();
        int j=-1;
        for(int I=0; i//循环遍历数组,利用j存储下标来输出提示等。
            if(arr[i]==number){
                j=i;
            }
        }
        if(j==-1){
            System.out.print("你要找的数是:"+number+" 在目标数组不存在");
        } else if (j!=-1) {
            System.out.print("你要找的数是:"+number+" 在目标数组中的下标是:"+j);
        }
    
    折半查找:
    
        int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7};
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个数字:");
        int number = sc.nextInt();
        int left = 0, right = arr.length - 1;//两个下标
        if (number < arr[left] || number > arr[right]) {
            System.out.println("数字不存在");
        } else {
            int res = -1;
            while (left <= right) {
                int middle=(left+right)/2;
                if(arr[middle]==number){
                    res=middle;break;
                } else if (number-1;
                }else {
                    left=middle+1;
                }
            }
            System.out.print("下标:"+res);
        }
    
    折叠

    2、排序

    冒泡排序:
         int  [] arr=new int []{1,58,46,33,10,5,-8};
         int i=0,j=0;
         while(i<(arr.length-1)){
             while (j< (arr.length-(i+1))){
                if(arr[j]>arr[j+1]){
                    int max;
                    max=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=max;
                }
                j++;
            }
            j=0;
            i++;
        }
        int n=0;
        System.out.println("long "+arr.length);
        while(n< arr.length){
            System.out.print(arr[n]+" ");
            n++;
        }
    
    选择排序:
        int [] arr=new int[]{1,25,48,12,10,-8,127,56};
        for(int i=0;i1;i++){
            int min=i;
            int temp=arr[i];
            for(int j=(i+1);jif(arr[i]>arr[j]){
                    arr[i]=arr[j];
                    min=j;
                }
            }
            arr[min]=temp;
            System.out.print("第"+(i+1)+"次:");
            for (int n=0;nprint(arr[n]+" ");
            }
            System.out.println();
        }
    
    插入排序:
       int [] arr=new int[]{10,5,2,18,3,50,100,-1};
       for(int i=0;i1;i++){
           int min=arr[i+1];
           for(int k=i;k>0;k--){
               if(minfor(int j=i;j>k-1;j++){
                       arr[j]=arr[j-1];
                   }
                   break;
               }
           }
       }
    折叠
  • 相关阅读:
    BOM系列之localStorage
    适用于 Mac 或 Windows 的 4 种最佳 JPEG/PNG图片 恢复软件
    关于 re.sub 部分替换的解决办法
    论文阅读:Deep-Learning Super-Resolution Microscopy
    自动控制原理5.5---闭环系统的频域性能指标
    java基于springboot美食制作菜谱推荐网站设计289
    CompletableFuture和ListenableFuture
    【Linux】软件管理yum | 编辑器vim | vim插件安装
    美式发音速成笔记
    计算机视觉——基本矩阵的计算
  • 原文地址:https://www.cnblogs.com/mamuxiansheng/p/16483349.html