数组的简单算法(复制,反转,冒泡排序,线性查找等)

数组的简单算法(复制,反转,冒泡排序,线性查找等)


首先我们创建一个int型数组,然后依次进行以下操作:

		int[] arr=new int[] {23,45,3,-4,-76,44,12,0};

1.数组复制

数组复制就是再创建一个数组,大小和数组元素都跟原来的数组一样,切记,不能直接arr1=arr这样,因为这样只是将数组的指针赋给了arr1,本质上还是同一个数组。

//1.数组复制
		System.out.println("-----------------数组复制---------------");
		int[] arr1=new int[arr.length];
		for(int i=0;i<arr.length;i++) {
			arr1[i]=arr[i];
		}
		System.out.print("arr1="+"\t");
		for(int i=0;i<arr1.length;i++) {
			System.out.print(arr1[i]+"\t");
		}
		System.out.println();

运行结果:

-----------------数组复制---------------
arr1=	23	45	3	-4	-76	44

2.数组反转

数组反转就是将数组里的元素反向排列。

//2.数组反转
		System.out.println("-----------------数组反转---------------");
		for(int i=0;i<arr.length/2;i++) {
			int temp=arr[i];
			arr[i]=arr[arr.length-1-i];
			arr[arr.length-1-i]=temp;
		}
		System.out.print("arr="+"\t");
		for(int i=0;i<arr1.length;i++) {
			System.out.print(arr[i]+"\t");
		}
		System.out.println();

运行结果:

-----------------数组反转---------------
arr=	0	12	44	-76	-4	3	45	23

3.冒泡排序

System.out.println("-----------------冒泡排序---------------");
		for(int i=0;i<arr.length-1;i++) {
			for(int j=0;j<arr.length-1-i;j++) {
				if(arr[j]>arr[j+1]) {
					int temp=arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=temp;
				}
			}
		}
		System.out.print("arr="+"\t");
		for(int i=0;i<arr1.length;i++) {
			System.out.print(arr[i]+"\t");
		}
		System.out.println();

运行结果:

-----------------冒泡排序---------------
arr=	-76	-4	0	3	12	23	44	45

4.线性查找

//线性查找
		System.out.println("-----------------线性查找---------------");
		Scanner scan=new Scanner(System.in);
		System.out.println("请输入你要查找的数:");
		int dest=scan.nextInt();
		boolean flag=true;
		for(int i=0;i<arr.length;i++) {
			if(dest==arr[i]) {
				System.out.println("找到了你要查找的数,再数组中的位置是:"+(i+1));
				flag=false;
			    break;
			}
		}
		if(flag) {
			System.out.println("很遗憾,没找到!");
		}

运行结果:

-----------------线性查找---------------
请输入你要查找的数:
12
找到了你要查找的数,再数组中的位置是:5

5.补充:

  • 快速排序时间复杂度:O(nlogn)
  • 冒泡排序时间复杂度:O(n^2)
  • ArrayIndexOutOfBoundsExceptin:数组角标越界异常。数组角标(索引值)越过了【0,arr.length-1】这个合理范围
  • NullPointerException:空指针异常。int【】 arr=null;则arr【0】本身是Null,所以调用会显示空指针异常。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值