ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

20220715朱云新

2022-07-15 20:34:42  阅读:96  来源: 互联网

标签:arr 20220715 int System 朱云新 数组 排序 out


JAVA初始的第三天


数据结构

​ 1,数组

​ 最基本的数据结构;是一张表,线性表(数据元素之间是一对一的,除了第一个和最后一个之外,其余元素都是首尾连接,所以数组有顺序)

​ 2,链表

​ 3,树

​ 3,图

算法:

1,线性查找:

​ 简单方便,但不适合数量大的数据。

2,二分查找:

​ 必须要排序。

3,排序算法:

1.冒泡排序
/*
思路分析:
    1,我先拿第一个数和后面的数一一比较大小,如果比这个数小就换位,经过一轮比较之后,最大的数就会在最后
    2,经过数组长度减一次的比较,就会排序完成
    3,外层循环:表示排几轮
    4,里层循环:实现数和数之间的比较
    
*/
int []a = {1,58,46,33,10,5,-8,9,16,78,99,-45,48,33};
int i = 0;
int j = 1;
int m;

    for (i=0;i<(a.length-1);i++){
        for (j=1;j<a.length;j++){
            if (a[j-1]<a[j]) {
                m=a[j];
                a[j]=a[j-1];
                a[j-1]=m;
            }

            }
        }

    for(int b : a){
        System.out.print(b + ",");


}





简易算法:
直接调用方法Arrays.sort(数组)
2,快速排序
3,插入排序
4,选择排序


/**
思路分析
 *第一轮,i等于-。m=0,里层for循环,int j=1; j <a.lenth;
 * if(arr[0])>arr[1]{}.由于if不满足,则继续下一次的比较。
 * j=2 ,if(arr[0]>arr[2]){}.由于if不满足,则继续下一次比较。
 * j= 3,if(arr[0]>arr[3]){}.由于if不满足,则继续下一次比较。
 * j= 4,if(arr[0]>arr[4]){}.由于if不满足,则继续下一次比较。
 * j=5 ,if(arr[0]>arr[5]){}.由于if满足条件,执行了交换操作 ,m=5。
 * j=6 ,if(arr[5]>arr[6]){}.由于if不满足,则继续下一次比较。
 * j=7 ,if(arr[5]>arr[7]){}.由于if不满足,则继续下一次比较。
 * 到此为止,里层for循序执行完毕。m = 5  。执行的
 * int n = a[5];
 * a[5] = a[0];
 * a[0] = n;
 * i = 0 的这次外层循环执行完毕,数组最小的数就在第一位了。
 * 第二轮继续
 * 以此类推到第七轮,排序完毕
 */

int[] a = {1, 58, 46, 33, 10, 5, -8, 9, 16, 78, 99, -45, 48, 33};
int i;
int j;
int n;
for (i = 0; i < a.length ; i++) {
    int m =i;

    for (j =i+ 1; j < a.length; j++) {
        if (a[m] > a[j]) {
            m = j;
            }
        }
    n = a[m];
    a[m]=a[i];
    a[i]=n;
    }
for (int b : a) {
    System.out.print(  b + ",");
}
5,希尔排序
6,堆排位
7,归并排序
8,桶排序

数组反转;

int[] a = {1, 58, 46, 33, 10, 5, -8, 9, 16, 78, 99, -45, 48, 33};
int[]b = new int[a.length];
for (int i=(a.length-1);i>=0;i--){
    for (int j =0 ; j<a.length;j++){
       if((i+j)==(a.length-1)) {
           b[j] = a[i];
       }
    }
}
数组的扩容:

​ int []arr=new int[]{3,4,6};
​ int [] temp=new int[6];//定义一个临时的数组
​ for (int i = 0; i < arr.length; i++) {
​ temp[i]=arr[i];
​ }
​ arr=temp;
​ for (int i : arr) {
​ **System.out.println(i);
​ }

import java.util.Scanner;

public class Sddd {**
public static void main(String[] args) {
// 数据结构
// 1.数组是最基本的数据结构,是一张表,线性表(数据元素之间是一对一,除了第一个和最后一个之外,其余的元素都是收尾连接)
// 2.链表
// 3.树、
// 4.图

    /*
    找出一个数在数组中的位置
    在数组中是否存在,如果存在,返回下标,如果不存在还原-1,

    */
    int[] arr = new int[]{1, 58, 46, 33, 10, 5, -8};
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一个数");
    int num = sc.nextInt();
    boolean flag = false;
    int index = -1;
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] == num) {

// System.out.println("你要找的数是:"+num+"在目标数组中的下标是:"+i);
flag = true;
index = i;
break;
}
// else{
//// System.out.println("你要找的数是:"+num+"在目标数组中的下标不存在");
// }
}
if (flag) {
System.out.println("你要找的数是:" + num + "在目标数组中的下标是:" + index);
} else {
System.out.println("你要找的数是:" + num + "在目标数组中的下标不存在");
}
}
}****
学习感受:
1.今天学习了算法,不是很懂,但是可以简单写一些
2.自己钻研了一些,各种排序,会有一些相同点
3.感觉java有点杂,但是会自己努力的

标签:arr,20220715,int,System,朱云新,数组,排序,out
来源: https://www.cnblogs.com/baishanshi/p/16482730.html

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

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

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

ICode9版权所有