package lengreen.sort;
import java.util.Random;
import lengreen.pub.U;
public class ChooseSort {
public static void main(String[] args) {
int[] arr = {12, 23, 9, 24, 15, 3, 18};
U.prtArr1D(arr);
// recursionSort(arr, 0);
commonSort(arr);
U.prtArr1D(arr);
}
/**
* 递归排序
* @param arr
*/
private static void recursionSort(int[] arr, int index) {
if(index < arr.length) {
for (int i = 0; i < arr.length; i++) {
if(arr[index] < arr[i]) {
int tmp = arr[index];
arr[index] = arr[i];
arr[i] = tmp;
}
}
index ++;
recursionSort(arr, index);
}
}
/**
* 通常选择排序
* @param arr
*/
private static void commonSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n; i++) {
for(int j = i + 1; j < n; j++) {
if(arr[i] > arr[j]) {
int tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
}
}
}
}
}
分享到:
相关推荐
合并排序由于其稳定性(相同元素的相对顺序不会改变)和O(n log n)的时间复杂度,成为了多维数组排序的一种理想选择。 总结来说,MATLAB中的多维数组合并排序涉及到对数组的分解、排序和合并,这需要对MATLAB的数组...
在PHP中,快速排序通常用于一维数组,但对于二维数组,我们可以通过对其特定属性(如这里的'score')进行排序来实现。下面我们将深入探讨如何实现PHP二维数组的快速排序算法。 首先,我们需要理解快速排序的核心...
4. 快速排序:采用分治策略,选取一个基准值,将数组分为两部分,然后对两部分递归地进行快速排序。 5. Java库中的Arrays.sort()方法:可以直接对整型、字符型、对象数组进行排序。 五、数组与算法题 1. 两数之和:...
1. **数组**:题目中提到了二维数组W,数组是一种线性数据结构,它以固定大小的同类型元素集合表示。数组的元素按特定顺序存储,可以通过下标访问。在本题中,数组W的每个元素占用4个字节,共有8行4列,所以总占用...
通过两次嵌套循环遍历矩阵,用一个变量记录最大值和对应的行、列号。在遍历过程中,如果发现更大的元素,更新最大值并记录位置。 7. **二维数组周边元素之和**:计算4x4矩阵周边元素的和,不包括对角线上的元素。...
6. 两个一维数组相加:该题目要求编写一个程序来将两个一维数组相加。程序需要使用循环语句来元素-wise 相加。 知识点:一维数组、循环语句、数组操作 7. 求最大、最小值:该题目要求编写一个程序来求一组数中的...
3. **一维数组排序**:数组排序可以使用经典的排序算法,如冒泡排序、选择排序、插入排序、快速排序等。题目要求对整型数组进行排序,需要编写一个函数处理数组元素的交换和比较。 4. **计算整数的最大公约数**:...
**一维数组**:声明一维数组的基本格式是`type[] arrayName;`,其中`type`是数组元素的数据类型。创建数组时,需要使用`new`关键字为数组分配内存,如`int[] myArray = new int[5];`。 **多维数组**:在Java中,...
这个问题通常被称为数组循环移位,即给定一个长度为n的一维向量,需要将其向左或向右旋转i个位置。这种操作在各种算法中都有应用,如快速排序、哈希表的设计等。本文将重点讨论《编程珠玑》中提到的五种一维向量旋转...
13. 求每列最小值:函数fun找出m行n列二维数组tt每列的最小值,存入一维数组pp。可以使用多层循环和条件判断实现。 14. 计算二维数组周边元素之和:fun函数需计算二维数组的周界元素之和。需要遍历数组边界并累加。...
在本段代码中,定义了一个名为 `seqlist` 的结构体类型,用于存储一维整型数组及数组长度。该结构体为实现后续各种排序算法提供了数据容器。 ```c typedef struct { int key[MAXSIZE + 1]; int length; } seqlist...
- **解析**:打印杨辉三角形的前10行,涉及到对杨辉三角形生成规律的理解,使用二维数组存储每一行的数据,以及循环结构控制打印格式。 #### 题目十六:学生成绩分析 - **知识点**:数组操作,条件判断,函数设计 -...
- `fast_sort`函数接收数组、起始索引、结束索引、分界点索引指针、二维数组指针以及最大递归深度指针。它负责执行分区操作,并返回新的分界点位置。 - `digui`函数是递归函数,用于管理递归调用`fast_sort`。它会...
6. **两个一维数组相加**:编写函数实现两个一维数组的逐元素相加,返回新的数组。 7. **求最大、最小值**:遍历数组,找出其中的最大值和最小值。 8. **判断闰年**:利用闰年的规则(能被4整除但不能被100整除,...
12. **选择排序与折半查找**:实现选择排序算法对数组进行降序排列,以及折半查找特定元素的功能。 13. **合并排序数组**:将两个已排序的数组合并为一个新的有序数组,需要理解数组操作和排序算法。 14. **找出...
这个函数使用了指针和二维数组来实现这个功能。这个试题考察了C语言中二维数组和指针的使用。 8. 数组和函数 这个试题展示了如何编写一个函数来将一个数组中的元素从小到大排序。这个函数使用了指针和数组来实现这...
* 一维数组的定义方法、初始化方法、元素引用方法、一维数组的输入输出方法 * 二维数组的定义方法、初始化方法、元素引用方法、二维数组的输入输出方法 * 函数的定义、递归的用法 基本算法举例 * 两个变量交换、...
迭代和递归两种方式都能实现。 9. **快速排序**:快速排序采用“分区”策略,选取一个基准元素,将数组分为两部分,小于基准的放一边,大于的放另一边,然后递归地对两边进行快速排序。指针交换法是快速排序的一种...
一维数组的声明格式通常为 `type arrayName[]`。例如,声明一个整型数组可以写为 `int[] numbers;`。创建数组时,需要使用 `new` 关键字为其分配内存空间,如 `numbers = new int[10];`。 - **初始化**: 数组...