java递归实现数组逆序_Java实现数组全排序(递归)
冒泡排序 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 冒泡排序算法的运作如下:(从后往前) 比较相邻的元素。如果第一个比第二个大
import org.junit.Test;
/**
* 全排序思路:假设有n个数需要进行全排列,我们可以把每个数都放到第一个位置,然后剩下的n-1个数进行全排列。
* 即有n*(n-1)!种可能性,与n个数进行全排列的n!次可能性一致
* 利用递归的方式,依此类推当剩下的数个数为1时,为一次排列,输出该排列。
* 所以递归函数可以如下permutation所示:
* @author YH
*
*/
public class AllSort {
public void permutation(char[] buf, int start, int end) {
if (start == end) {// 当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可
for (int i = 0; i <= end; i++) {
System.out.print(buf[i]);
}
System.out.println();
} else {// 多个字母全排列
for (int i = start; i <= end; i++) {
char temp = buf[start];// 交换数组第一个元素与后续的元素
buf[start] = buf[i];
buf[i] = temp;
permutation(buf, start + 1, end);// 后续元素递归全排列
temp = buf[start];// 将交换后的数组还原
buf[start] = buf[i];
buf[i] = temp;
}
}
}
@Test
public void testPermutation() throws Exception {
char[] buf = new char[] { 'a', 'b', 'c' };
permutation(buf, 0, 2);
}
}
在堆排序的java实现中,待排序的数组arr[0]是空出来不使用的,因为java数组的下标是从0开始的,而堆的起始下标为1(保证满足父节点与左右节点的算数关系)。因此arr[1],arr[2]...ar[arr.length - 1]是被排序的元素集合。 在堆排序算法中,每次将堆的最后一个
运行测试,输出结果:
abc
acb
bac
bca
cba
cab
java递归实现数组逆序_Java实现数组全排序(递归)相关推荐
- java数组逆序_Java 数组的排序、逆序
数组的排序.逆序测试数据 public static void main (String[] args) { // 数组逆序 int[] arr = {1,2,3,4,5,6,7}; reverse( ...
- java list逆序_Java的数组和list升序,降序,逆序函数Collections.sort和Arrays.sort的使用...
list升序,降序,逆序 Listlist =new ArrayList(); //如果list是 5 7 2 6 8 1 4 1.升序: Collections.sort(list) //list: ...
- 数组逆序重放c语言,计算概论(A)/基础编程练习2(8题)/6:数组逆序重放
#include int main() { // 输入n个整数 int n,array[n],count=-; scanf("%d", &n); // 循环读入元素 whi ...
- java将数组逆序输出_java将一个数组逆序输出-java将一个数组逆序输出的方法-吾爱编程网...
今天吾爱编程为大家介绍一下java的经典实例将一个数组逆序输出,相信很多学习java的小伙伴都会接触到,有需要的小伙伴可以参考一下: 1.需求分析: 用第一个与最后一个交换, 第二个与倒数第二个交换, ...
- java string逆序_Java学习笔记(八)——异常
本节主要内容是对 Java 的异常处理进行讲解,主要包含以下知识点: 异常分类 声明及抛出 捕获异常 自定义异常 * 异常堆栈 异常概述 对于程序的错误以及外部环境能够对用户造成的影响,我们应当及时报 ...
- Java怎么顺序 或 逆序排序数组
对数组进行顺序排序 可使用Arrays类的sort( int[ ] a) 方法 Arrays.sort(a, cmp); 对数组进行倒序排序 使用实现Comparator接口: 排序时,只需要在sor ...
- java一维数组正序输出,java将一个数组逆序输出-java将一个数组逆序输出的方法-吾爱编程网...
今天吾爱编程为大家分享一下Java的经典实例之一:java将一个数组逆序输出,有需要的小伙伴可以参考: 1.题目要求: 使用Java编程一个程序,将一个数组逆序输出 2.程序代码:public sta ...
- java 链表逆序 递归,java用递归和非递归实现链表逆序
传统的逆序链表方法是使用三个指针来记录节点的状态,防止链表断裂. Node节点 public class Node { private int data; private Node next; pub ...
- 【Java】数组逆序操作。定义长度为10的数组,将数组元素对调并输出对调后的结果。
题目:数组逆序操作.定义长度为10的数组,将数组元素对调并输出对调后的结果. 思路:把0索引和arr.length-1的元素交换,把1索引和arr.length-2元素交换--只要交换到arr.len ...
最新文章
- layerconfirm确认框的使用
- yum报错[Errno 256] No more mirrors to try.
- python 最简单的实现适配器设计模式
- Log4j 第三次发布漏洞补丁,漏洞或将长存
- 对HTTP基本认识(HTTP协议入门必备)
- left join 多条件_第九篇|Spark的五种JOIN策略解析
- Spring-beans-BeanFactoryPostProcessor
- [转]vs2003,安装程序检测到另一个程序要求计算机重新启动
- 27. Remove Element
- 联想叶明:“双态IT”不能一刀切理解
- 如何用python爬取抖音视频列表
- iphone开蓝牙wifi上网慢_iPhone手机网速慢解决方法
- SpringBoot的幕后推手,五年Java开发者小米、阿里面经
- 数据分析-面试(SQL真题)
- 为什么web网页会被劫持,网页被劫持的解决方法有哪些?
- 【ENM-LAP模型】基于ENM-LAP模型的移动自组织网络拓扑演进的matlab仿真
- 表格(table)属性cellspacing、cellpadding
- jsp运动会管理系统
- AWS-IAM学习笔记
- 机器学习理论-PAC learning
热门文章
- ThinkPHP 集成 PHPUnit 8 测试框架进行单元测试
- UIWindow简单介绍
- Mac Os 基本命令行
- python中dom是什么意思_python--BOM和DOM
- 散粉在哪个步骤用_美妆大神的定妆大法竟然这么好用?用完都不想卸妆了
- Linux中yum源配置及软件安装管理
- java 给控件添加边框_Android UI 利用Drawable Shape给控件加边框/立体效果
- linux权限管理详解,linux权限管理详解-Go语言中文社区
- java反射po转vo_三步走使用Dozer (Do,Po,Vo转换工具)
- 海门工业机器人_海门凹凸模压标机推荐-无锡胜宝机电