当前位置: 首页 > news >正文

【java学习】数组中涉及的常见算法-含冒泡排序(11)

文章目录

  • 1. 最大值、最小值、总和、平均数
  • 2. 数组的复制、反转
  • 3. 数组元素的排序
    • 3.1. 排序方式
      • 3.1.1. 冒泡排序


1. 最大值、最小值、总和、平均数

代码如下:


public class Test1 {public static void main (String[] args) {int[] arr = new int[] {4,2,7,1,3,5};//最大值int max = arr[0]; //假设arr[0]是目前的最大值for(int i = 0; i < arr.length; i++) {if(max < arr[i]) {max = arr[i];  //把目前的最大值赋值给max}}System.out.println("max =" + max);//最小值int min = arr[0]; //假设arr[0]是目前的最小值for(int i = 0; i < arr.length; i++) {if(min > arr[i]) {min = arr[i];  //把目前的最小值赋值给min}}System.out.println("min =" + min);// 总和,平均数int res = 0;for(int i = 0; i < arr.length; i++) {res += arr[i];}System.out.println("总和:" + res);System.out.println("平均数:" + (res / arr.length));}
}

2. 数组的复制、反转

代码如下:

public class Test1 {public static void main (String[] args) {//复制int[] arr = new int[] {4,2,7,1,3,5};int[] arr_copy = new int[arr.length];for(int i =0; i < arr.length; i++) {arr_copy[i] = arr[i];}// 反转// 考虑声明一个数组temp,数组temp的长度与arr的长度一致,倒着循环arr,正着给temp的元素赋值int[] temp =new int[arr.length];int k = 0;for(int i = arr.length - 1; i >= 0; i--) {temp[k] = arr[i];k++;}arr = temp;System.out.print("反转后的arr:");for(int i =0; i< arr.length; i++) {System.out.print(arr[i] + " ");}}
}

3. 数组元素的排序

3.1. 排序方式

  • 插入排序
    直接插入排序、折半插入排序、Shell排序
  • 交换排序
    冒泡排序、快速排序(或分区交换排序)
  • 选择排序
    简单选择排序、堆排序
  • 归并排序
  • 基数排序

3.1.1. 冒泡排序

排序思想
相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最大元素排在最后(如从小到大排序),下一次循环是将其它的数进行类似操作。

练习题
    对数组{4,7,3,1}从小到大排序,使用冒泡排序方式。

答案

public class Test1 {public static void main (String[] args) {//冒泡排序//假设4,7,3,1 从小到大排序//4,3,1,7 第一轮得到一个最大的数字,放在倒数第一位//3,1,4,7 第二轮得到除最后一个数字之外的最大数字,放在倒数第二位//1,3,4,7 第三轮得到除最后两个数字之外的最大数字,放在倒数第三位int[] arr = new int[]{4,7,3,1};int temp = 0;for(int i = 0; i< arr.length-1; i++) { //外层循环是循环轮次,轮次循环的次数是数组长度-1for(int j = 0; j < arr.length-1-i; j++) { //每一轮次的数字对比排序,每轮次的循环依次3,2,1,(轮次长度-1-i)if(arr[j] > arr[j+1]) {    //如果是<号,则从大到小排序temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}for(int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}
}
http://www.lryc.cn/news/188665.html

相关文章:

  • useEffect Hook使用纠错
  • LeetCode【739】每日温度
  • 核桃派walnutpi添加红外遥控器键盘映射(其他的linux板子同理)ir-keytable
  • cartographer(2)-launch-lua的配置
  • 【C++设计模式之责任链模式:行为型】分析及示例
  • 如何选择编程语言Python Go还是Rust?
  • CAN和CANFD通信介绍
  • 解决网页 H5 对接微信 JSSDK 后自定义分享和跳转APP等没效果
  • 基于DeOldify的给黑白照片、视频上色
  • 腾讯云饥荒服务器配置选择和费用价格表
  • 聊聊MySql索引的类型以及失效场景
  • 零代码编程:用ChatGPT批量调整文件名称中的词汇顺序
  • stm32 hal库 st7789 1.54寸lcd
  • 【arm实验1】GPIO实验-LED灯的流水亮灭
  • MySQL关联数据表操作方式
  • SMOS数据处理,投影变换,‘EPSG:6933‘转为‘EPSG:4326‘
  • 游戏服务端性能测试实战总结
  • 塔望食观察 | 中国海参产业发展现状及挑战
  • springboot 捕获特点异常信息并处理
  • 【Spring框架学习3】Spring Bean的作用域 及 生命周期
  • 多线程并发篇---第四篇
  • vs code 添加vue3代码模板方法
  • 怎么通过Fiddler对APP进行抓包?以及高级应用场景分析
  • centos下安装配置redis7
  • 【angular】TodoList小项目(已开源)
  • 【Java 进阶篇】HTML块级元素详解
  • CSS设置鼠标样式和添加视频样式
  • 项目文件上传到行云codeup teambition
  • 现货黄金和实物黄金有什么区别?
  • /dev下没有video0这个文件(ubuntu无法打开摄像头)