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

江西省住房和城乡建设网站现在能用的网站

江西省住房和城乡建设网站,现在能用的网站,东莞软件开发企业,南通个人网站制作7. 数组 7.3.5 数组排序 7.3.5.1 冒泡排序 冒泡排序的思路#xff1a;相邻两个元素进行比较#xff0c;如果前面元素比后面元素大就交换位置#xff0c;每一趟执行完后#xff0c; 就会得到最大的数。 排序过程分析#xff1a; package com.openlab; /** * 冒泡排序 */…7. 数组 7.3.5 数组排序 7.3.5.1 冒泡排序 冒泡排序的思路相邻两个元素进行比较如果前面元素比后面元素大就交换位置每一趟执行完后 就会得到最大的数。 排序过程分析 package com.openlab; /** * 冒泡排序 */ public class BubbleSort { public static void main(String[] args) { int[] arr {6, 9, 1, 5, 2, 3, 8, 4, 7}; print(arr); // 排序后 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 1]; arr[j 1] arr[j]; arr[j] temp; } } } print(arr); } private static void print(int[] arr) { for (int el : arr) { System.out.print(el \t); } System.out.println(); } } 7.3.5.2 选择排序 选择排序的思路每次都从剩余元素中找到最小的元素并将其放到有序数组的最后。 排序过程 代码实现 package com.openlab; /** * 选择排序 */ public class SelectSort { public static void main(String[] args) { int[] arr {6, 9, 1, 5, 2, 3, 8, 4, 7}; print(arr); // 排序 for (int i 0; i arr.length - 1; i) { for (int j i 1; j arr.length; j) { if (arr[i] arr[j]) { int temp arr[j]; arr[j] arr[i]; arr[i] temp; } } } print(arr); } private static void print(int[] arr) { for (int el : arr) { System.out.print(el \t); } System.out.println(); } } 7.3.5.3 插入排序 排序思路默认第一个元素是有序的然后从后面元素取出元素也前面的元素进行比较然后找到合适 的位置结束。 排序过程 排序实现 7.3.6 数组查找 7.3.6.1 线性查找 思路是将被查找的元素与数组中的每一个元素从前往后一一匹配如果能匹配上则找到否则找不到 public class LineSearch { public static void main(String[] args) { int[] arr {6, 9, 1, 5, 2, 3, 8, 4, 7}; int key 8; // 要查找的元素 int index -1; for (int i 0; i arr.length; i) { if (arr[i] key) { index i; break; } } if (index ! -1) System.out.println(arr[index]); else System.out.println(没找到); } } 7.3.6.2 折半查找 也叫二分查找思路是对定义两个指针分别指向被查找数组的第一个元素和最后一个元素的位置然后 再定义一个中间指针指向第一个指针加上第二个指针然后除以 2 后的位置。如果被查找的元素小于中间 指针对应的元素则在左边区域查找如果被查找的元素大于中间指针对应元素则在右边区域查找。 要实现折半查找被查找的数组必须有序。 /** * 折半查找 */ public class BinarySearch { public static void main(String[] args) { int[] arr {6, 9, 1, 5, 2, 3, 8, 4, 7}; // 排序 for (int i 0; i arr.length - 1; i) { for (int j 0; j arr.length - 1 - i; j) { if (arr[j] arr[j1]) { int tmp arr[j1]; arr[j1] arr[j]; arr[j] tmp; } } } int key 8; // 被查找的元素 int left 0; // 左指针 int right arr.length - 1; // 右指针 int middle (left right) / 2; // 中间指针 while (arr[middle] ! key) { if (key arr[middle]) { right middle - 1; } if (key arr[middle]) { left middle 1; } if (middle right) { middle -1; break; } middle (left right) / 2; } System.out.println(arr[middle]); } } 练习题 import java.util.Scanner; public class Example01 { public static void main(String[] args) { String line1 input(1); String line2 input(2); /* // 从字符串 line1 中切出元素 String[] line1Arr line1.split( ); String[] line2Arr line2.split( ); //System.out.println(Arrays.toString(line1Arr)); //System.out.println(Arrays.toString(line2Arr)); // 定义要判断的数组 int[] list1 new int[Integer.parseInt(line1Arr[0])]; int[] list2 new int[Integer.parseInt(line2Arr[0])]; // 给数组添加元素 for (int i 1; i line1Arr.length; i) { list1[i-1] Integer.parseInt(line1Arr[i]); } System.out.println(list1 Arrays.toString(list1)); for (int i 1; i line2Arr.length; i) { list2[i-1] Integer.parseInt(line2Arr[i]); } System.out.println(list2 Arrays.toString(list2)); */ //int[] list1 defineArray(line1); //int[] list2 defineArray(line2); // 判断两个数组是否相同 //boolean flag equals(list1, list2); boolean flag equals(defineArray(line1), defineArray(line2)); System.out.println(flag); } /** * 从接收到的字符串中截取需要的数据到数组中并返回 * param line 需要截取字符串 * return 返回最终的整型数组 */ public static int[] defineArray(String line) { // 判断接收到的字符串是否为空 if (linenull || line.isBlank()) { System.out.println(你输入的是空。程序退出); System.exit(1); } // 从字符串 line1 中切出元素 String[] lineArr line.split( ); // 定义要判断的数组 int[] list1 new int[Integer.parseInt(lineArr[0])]; // 给数组添加元素 for (int i 1; i lineArr.length; i) { list1[i-1] Integer.parseInt(lineArr[i]); } return list1; } /** * 接收用户输入 * param n 输入的编号 * return 返回最终用户输入值 */ public static String input(int n) { Scanner sc new Scanner(System.in); System.out.println(Enter listn); return sc.nextLine(); } public static boolean equals(int[] list1, int[] list2) { // 1. 判断两个数组的元素个数是否相同如果不同则直接返回 false if (list1.length ! list2.length) { return false; } for (int i 0; i list1.length; i) { if (list1[i] ! list2[i]) { return false; } } return true; } }作业练习
http://www.pierceye.com/news/427800/

相关文章:

  • 做微信推送的网站小刘网站建设
  • 18款禁用软件app网站入口台州网站推广排名
  • 网站的服务内容济南网站制作方案
  • 微网站模板 phpwordpress 支付宝
  • wordpress dux主题破解安装全屏网站 图片优化
  • 一键建站公司做网站 怎么做留言
  • 制作的网站西安网页设计培训哪里有
  • 株洲市住房和城乡建设局门户网站中国建设银行官网站大同
  • 北京响应式网站制作公司wordpress邀请码注册
  • 衡阳网站开发有哪些公司怎么建设淘客自己的网站、
  • 国内扁平化网站欣赏什么站做咨询网站好
  • 评价校园网站建设范例wordpress插件获取数据库
  • 网站开发具体问题重庆装修公司排名前十名
  • 萝卜建站织梦网站采集如何做
  • 邢台在百度上做个网站河南营销网站建设联系方式
  • 电力建设科学技术进步申报网站教学工作总结
  • 做淘宝客必须建网站吗杭州网站优化效果
  • 网站开发有什么职位用vs做网站教程
  • 行业网站渠道选择和内容运营网站续费问题
  • 什么是seo优化推广阿里云网站建设优化
  • 信息发布型网站建设的特点免费
  • 陕西有限公司网站建设招标公告如何做影视网站的标题
  • wordpress网站百度搜索吗百度关键词推广怎么做
  • 马鞍山市网站建设服务有限公司计算机平面设计主要做什么
  • 手机网站跟pc网站有什么不同怎样创建网站收益
  • 什么系统做购物网站好做面料那几个网站
  • 做网站产品资料表格做鞋设备网站
  • 青海西宁制作网站企业做网站用什么语言编写
  • 网站变成手机网站做简历的网站都有哪些内容
  • 汽车网站建设页面软件公司都是帮别人做网站么