for循环应用(排序,查找)
冒泡排序
冒泡排序需要对相邻两个进行比较,所以我们的比较次数就是length - 1;
并且我们每次比较一次都会产生一个最大值排在最后所有,我们要使用
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length-i-1; j++) {
语句体;
}
}
点击查看代码
import java.util.Arrays;
//冒泡排序
public class ForDemo5 {
public static void main(String[] args) {
int[] arr = {1,5,4,13,41,23,42,66,11,15,9};
MaoPaoSort(arr);
}
public static void MaoPaoSort(int [] arr){
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length-i-1; j++) {
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
//1.给定一个整数数组 `nums` 和一个目标值 `target`,
// 请找出数组中两个数之和等于目标值的所有下标对,并返回一个二维数组。
//输入:`nums = [2, 7, 11, 1, 3, 6,15,8]`,`target = 9`
我们要处理的难点就是如何将我们的一维数组放入二维数组中
nums---> ArrayList ---(一一对应即可) ---->nums1
点击查看代码
public class ForDemo6 {
public static void main(String[] args) {
int[] nums = {2, 7, 11, 1, 3, 6,15,8};
ArrayList<int[]> list = new ArrayList<>();
int target = 9;
int c= 0;
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums.length; j++) {
if(i != j && (nums[i]+nums[j])==target && i<j){
// System.out.println(i+","+j);
list.add(new int[]{i,j});
c++;
}
}
}
int[][] nums1 = new int[c][2];
for (int i = 0; i < list.size(); i++) {
nums1[i][0] = list.get(i)[0];//该集合本来就是集合数组,通过集合数组对二维数组进行一对一赋值
nums1[i][1] = list.get(i)[1];
}
for (int i = 0; i < nums1.length; i++) {
System.out.println("["+nums1[i][0]+","+nums1[i][1]+"]");
System.out.println();
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!