ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

2022-07-15 吉林化工学院 第一组 韩嘉宁 学习笔记(Java前期 3)

2022-07-19 01:32:49  阅读:117  来源: 互联网

标签:arr 15 07 int System 韩嘉宁 println 排序 out


写程序思路:

写程序思路:
1.先完成需求功能
2.进行优化处理
3.代码重构

数据结构:

  • 数组(最基本的数据结构,是一张线性表)

    线性表:数据元素是一对一的,除了首尾元素,其余元素都为首尾相接

  • 链表(每个数据都是通过链连接起来的)

    单向链表

    双线链表

查找算法:

  • 线性查找: 简单,便于理解,只是适应简单查找

  • 二分法

  • int []arr=new int[]{1,2,3,4,5,6,7,8};
            System.out.println("请输入一个数:");
            Scanner scan=new Scanner(System.in);
            int num=scan.nextInt();
            int left=0;
            int right=arr.length -1;
            if(num <arr[left] || num >arr[right]){
                System.out.println(num + "不在数组中");
            }else{
                //找出中间数
                //用来保存 找到的数
                int res=-1;
                while(left<=right) {
                    int middle = (left + right) / 2;
                    if (arr[middle] == num){
                        res=middle;
    
                System.out.println(num + "在数组中"+"且该数在数组中的位置是:" +middle);
                        break;
                    }else if(arr[middle] > num){
                        right=middle-1;
                    }else{
                        left=middle + 1;
                    }
                }
            }
    

排序算法:

  • 1.冒泡排序

    需要两层循环嵌套:for

    外层循环控制 需要各个数之间进行比较的轮次

    内层循环控制 每个数需要比较次数

    int[] arr=new int[]{2,5,3,7,9,1,68};
            //外层循环比较轮次
            //内存循环
            for(int i=0;i<arr.length-1;i++){
                //已经控制好了比较次数
                //比较的次数 =数组长度 -1
                for(int j=0;j<arr.length-i-1;j++){
                    if(arr[j]>arr[j+1]){
                       int temp=arr[j];
                       arr[j]=arr[j+1];
                       arr[j+1]=temp;
    
    
                    }
    //                System.out.println();
                }
    
            }
            for(int i=0;i<arr.length;i++){
                System.out.print(arr[i] + "、");
            }
    
  • 2.快速排序

  • 3.插入排序

  • 4.选择排序

选择排序
 int[] arr=new int[]{1,25,48,12,10,-8,127,56};
        //min最小下标
        int index=0;
        for(int i=0;i<arr.length;i++){//将每个数都比较一次(轮次)
            int minIndex=i;
            for(int j=i +1;j<arr.length;j++){
                if(arr[minIndex]>arr[j]){
                    minIndex=j;
                }

            }
            //换位
            int temp=arr[minIndex];
            arr[minIndex]=arr[i];
            arr[i]=temp;
            System.out.println("第" +(i+1) +"次结果是:" );
            for (int i1 : arr) {
                System.out.print(i1 +"、");
            }
        }
  • 5.希尔排序

  • 6.堆排序

  • 7.归并排序

  • 8.桶排序

感悟:今天有关排序算法的理解并不是很透彻,虽然冒泡排序与选择排序在逻辑上有些相同,但当落实到代码上的时候选择排序却比冒泡排序难很多,尤其是在内层循环比较的时候,尝试很多次才使其逻辑正确并运行出结果。
当时反复更改逻辑的时候,简直是太崩溃了,但当缕清后心情大为舒畅。

标签:arr,15,07,int,System,韩嘉宁,println,排序,out
来源: https://www.cnblogs.com/WorkerHevien/p/16484601.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有