其他分享
首页 > 其他分享> > 2022/7/15 第六组 王梦龙 学习记录

2022/7/15 第六组 王梦龙 学习记录

作者:互联网

学习内容思维导图

 

主要内容

    数据结构

  1、数组

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

     除了第一个和最后一个之外,其余的元素都是首尾相连   

       2、链表

    链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。

  3、图

         图是一种数据结构,其中节点可以具有零个或多个相邻的元素,两个节点之间的连接称为边,节点也可以称为顶点。

  4、树

    树是一种抽象数据类型或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。

 排序

  1、冒泡排序

  

 1   int[] a=new int[]{2,77,3,4,52,75,2,64,2,3,3435,54,2353,12,5332,3567,88,56};
 2         int temp;
 3         for(int i=a.length;i>1;i--){
 4             for(int j=0;j<i-1;j++){
 5                 if(a[j]>a[j+1]){
 6                     temp=a[j];
 7                     a[j]=a[j+1];
 8                     a[j+1]=temp;
 9                 }
10             }
11             System.out.print("第"+(a.length+1-i)+"次排序:");
12             for(int i1:a){
13                 System.out.print(i1+" ");
14             }
15             System.out.println();
16         }

  2、插入排序

 

   

 1  int[] a=new int[]{3,4,5,2,43,56,3,66,4,43,7,8};
 2         int current;
 3         for (int i = 0; i <a.length-1 ; i++) {
 4             current=a[i+1];
 5             int preIndex=i;
 6             while(preIndex>=0 && current <a[preIndex]){
 7                 a[preIndex+1]=a[preIndex];
 8                 preIndex--;
 9             }
10             a[preIndex+1]=current;
11             System.out.print("第"+(i+1)+"排序:");
12             for (int j = 0; j <a.length ; j++) {
13                 System.out.print(a[j]+" ");
14             }
15             System.out.println();
16         }

  3、选择排序

    首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序                        完毕。

 1  int[] a=new int[]{3,4,5,2,43,56,3,66,4,43,7,8};
 2         System.out.println("从小到大排序:");
 3         int temp;
 4         for(int i=1;i<=a.length;i++){
 5             int min=i-1;
 6             for(int j=i;j<a.length;j++) {
 7                 if (a[min] > a[j]) {
 8                     min=j;
 9                 }
10             }
11             temp=a[min];
12             a[min]=a[i-1];
13             a[i-1]=temp;
14             System.out.print("第"+i+"次排序:");
15             for(int c:a){
16                 System.out.print(c+" ");
17             }
18             System.out.println();
19         }

 查找

  1、顺序查找

 1  int a[]=new int[]{1,3,3,4,5,3};
 2        int j[]=new int[3];
 3        int b=0;
 4         System.out.println("请输入你要查找的数:");
 5         Scanner s=new Scanner(System.in);
 6         int num=s.nextInt();
 7         boolean isOk=false;
 8         for (int i = 0; i <a.length ; i++) {
 9             if(a[i]==num){
10                 j[b]=i;
11                 System.out.println("已找到,你找的数是:"+a[i]+"   在数组中下标为:"+j[b]);
12                 b++;
13                 isOk=true;
14             }
15         }
16         if (isOk==false){
17             System.out.println("你找的数是"+num+",在目标数组中不存在");
18         }

 

  2、二分法查找

 1   //二分法查找
 2         int[] arr=new int[]{1,2,4,5,7,10,24,33,35,36,132,5335};
 3         Scanner s=new Scanner(System.in);
 4         System.out.println("请输入你要查找的数:");
 5         int num = s.nextInt();
 6         int min,max,middle;
 7         min=0;
 8         max=arr.length-1;
 9         middle=(min+max)/2;
10         if(min==max){
11             if(num==arr[middle]){
12                 System.out.println("已找到,查找的数为:"+num+", 在数组中的下标为:"+(middle-1));
13             }else {
14                 System.out.println("未找到,查找的数为:"+num);
15             }
16         }
17         while (min<=max){
18             if(num>arr[middle]){
19                 min=middle+1;
20                 middle=(min+max)/2;
21             } else if (num<arr[middle]) {
22                 max=middle-1;
23                 middle=(min+max)/2;
24             }else{
25                 System.out.println("已找到,查找的数为:"+num+", 在数组中的下标为:"+middle);
26                 break;
27             }
28         }
29         if(min>max){
30             System.out.println("未找到,查找的数为:"+num);
31         }

学习心得

    感觉插入排序有点难理解,当时听得懂,过一会就忘了。

 

 

标签:15,min,int,元素,System,王梦龙,2022,排序,out
来源: https://www.cnblogs.com/wanysyswml/p/16483988.html