冒泡,选择排序法,函数的封装与调用

本文探讨了冒泡排序和选择排序两种基础排序算法的实现,并深入讲解如何将这些算法封装为函数,以便于调用和复用。通过实例解析,帮助理解函数的封装过程及其在算法中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static void main(String[] args) {
	
	int sum = add(1,2);//调用add函数,并用sum来接收函数的返回值
	System.out.println(sum);
	
	int sum1 = add(1,2,3);//调用add函数,并用sum来接收函数的返回值
	System.out.println(sum1);
	
	int [] arr1 = method(arr);//调用method函数,并用数组arr1来接收函数的返回值
	System.out.println(Arrays.toString(arr1));
	
	int [] list = maopao_for(arr);//调用maopao_for函数,并用数组list来接收函数的返回值
	System.out.println(Arrays.toString(list));
	
	int [] str = check(arr);//调用check函数,并用数组str来接收函数的返回值
	System.out.println(Arrays.toString(str));
	
	int [] str1 = maopao_while(arr);//调用maopao_while函数,并用数组str1来接收函数的返回值
	System.out.println(Arrays.toString(str1));
	
	int [] str2 = check_while(arr);//调用check_while函数,并用数组str2来接收函数的返回值
	System.out.println(Arrays.toString(str2));
	
	int [] str3 = maopao_do_while(arr);//调用maopao_do_while函数,并用数组str3来接收函数的返回值
	System.out.println(Arrays.toString(str3));
	
	int [] str4 = check_do_while(arr);//调用check_do_while函数,并用数组str4来接收函数的返回值
	System.out.println(Arrays.toString(str4));
}

/*
 * 函数(方法):定义在类里面,具有独特功能的一段代码块
 * 优点:提高代码的复用性;简化代码;封装代码,隐藏细节
 * 格式:
 * 修饰符 返回值类型 函数名(参数的类型 形式参数){
 * 函数体;
 * return 返回值;(没有返回值得时候可以省略)
 * }
 * void:没有返回值
 * 函数有返回值的时候必须定义相同类型的变量接收
 * 函数的调用:
 * 		函数名(参数);
 * 基本数据类型当参数传递没有返回值的时候,对数据的改变没有作用
 * 引用数据类型当参数传递没有返回值的时候,对数据的改变有作用
 */


/*
 * 函数重载:
 * 1、在同一个类中
 * 2、方法名相同
 * 3、参数的类型或者参数的类型不同
 * 4、和返回值无关
 */
public static int add(int a,int b){
	int sum = a+b;
	return sum;
}
public static int add(int a,int b,int c){
	int sum = a+b+c;
	return sum;
}

/*
 * 形式参数和实际参数
 * 形式参数:
 * 		引用数据类型也可以作为形式参数传递
 * 实际参数:
 * 		
 */
static int [] arr = new int []{1,2,3,3,4,5,6,7};
public static int[] method(int [] arr){
	arr[0] = 8;
	return arr;
}

/*
 * 对排序的方法进行封装
 */
public static int [] maopao_for(int [] arr){//封装for冒泡排序法
	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;
			}
		}
	}
	return arr;
}
public static int [] check(int [] arr){//封装for选择排序法
	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[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
		}
	}
	return arr;
}
public static int [] maopao_while(int [] arr){//封装while冒泡排序法
	int i = 0;
	while(i<arr.length-1){
		int j = 0;
		while(j<arr.length-i-1){
			if(arr[j]<arr[j+1]){
				int temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
			j++;
		}
		i++;
	}
	return arr;	
}

public static int [] check_while(int [] arr){//封装while选择排序法
	int i = 0;
	while(i<arr.length-1){
		int j = i+1;
		while(j<arr.length){
			if(arr[i]>arr[j]){
				int temp = arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
			j++;
		}
		i++;
	}
	return arr;
}

public static int [] maopao_do_while(int [] arr){//封装do_while冒泡排序法
	int u = 0;
	do{
		int y = 0;
		do{
			if(arr[y]<arr[y+1]){//哪两个数进行比较
				int temp = arr[y];
				arr[y] = arr [y+1];
				arr[y+1] = temp;
			}
			y++;
		}while(y < arr.length-u-1);
		u++;
	}while(u < arr.length-1);
	return arr;
}

public static int [] check_do_while(int [] arr){//封装do_while选择排序法
	int r = 0;
	do{
		int e = r+1;
		do{
			if(arr[r]>arr[e]){
				int temp = arr[r];
				arr[r] = arr [e];
				arr[e] = temp;
			}
			e++;
		}while(e<arr.length);
		r++;
	}while(r<arr.length-1);
	return arr;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值