数组操作之找寻最大值与最小值并放在最后一位与第一位

Java数组操作:最大值最小值交换
本文介绍如何在Java中实现一个数组操作,找到最大值和最小值,然后将其分别与数组的最后一个和第一个元素交换。示例中给出了具体的需求分析和代码实现。

分析以下需求,并用代码实现:
(1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
(2)将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组
提示思路:先查找最大值和最小值出现的索引。
代码如下:

/**
 * @author Administrator 分析以下需求,并用代码实现:
 *         (1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
 *         (2)将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组 提示思路:先查找最大值和最小值出现的索引。
 * 
 */
public class Work1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr = {6,2,9,15,1,5,20,7,18};
		getChange(arr);
		
	}

	private static void getChange(int[] arr) {
		
		
		if (arr!=null&&arr.length!=0) {
			//找寻最大值最小值及等他们对应的位置
			int max = arr[0];
			int min = arr[0];
			int maxIndex = -1;
			int minIndex = -1;
			
			for (int i = 1; i < arr.length; i++) {
				if (max<arr[i]) {
					max = arr[i];
					maxIndex = i;
				}
				
				if (min>arr[i]) {
					min = arr[i];
					minIndex = i;
				}
			}
			
			//把最大值替换到最后位置
			if (arr.length-1 != maxIndex) {
				int temp = arr[arr.length-1];
### 关于C/C++/Python 中一维数组最大值最小值交换的实现 #### 使用 Python 实现 在 Python 中可以利用列表解析以及内置函 `max()` 和 `min()` 来找到最大值及其索引位置,同样对于最小值也是如此。之后通过简单的赋值操作完成两者的互换。 ```python def swap_max_min(lst): if not lst: # 如果列表为空,则直接返回原列表 return [] min_val = min(lst) # 获取最小值 max_val = max(lst) # 获取最大值 min_idx = lst.index(min_val) # 找到最小值的位置 max_idx = lst.index(max_val) # 找到最大值的位置 # 创建一个新的列表来存储修改后的据 result = list(lst) result[min_idx], result[max_idx] = result[max_idx], result[min_idx] return result # 测试例子 test_list = [3, 1, 4, 1, 5, 9, 2, 6] print(swap_max_min(test_list)) ``` 这段代码展示了如何在一个给定的一维整列表里定位交换其中的最大值最小值[^1]。 #### 使用 C++ 实现 当涉及到 C++ 编程语言时,可以通过遍历整个数组找寻最大值最小值对应的下标,最终执行它们之间的值交换过程。 ```cpp #include <iostream> using namespace std; void swapMaxMin(int* arr, int size){ int minIndex=0; int maxIndex=0; for(int i=1 ;i<size;++i){ if(arr[i]<arr[minIndex]) minIndex=i; else if(arr[i]>arr[maxIndex]) maxIndex=i; } // Swap the minimum and maximum elements. int temp = arr[minIndex]; arr[minIndex]=arr[maxIndex]; arr[maxIndex]=temp; } // Function to display array content void showArray(const int *array,int length){ for(int idx=0;idx<length;++idx){ cout<<array[idx]<<" "; } cout<<"\n"; } ``` 此部分提供了完整的解决方案用于处理静态分配的一维整形数组,在该结构内寻找极值对这些特定项实施置换动作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值