冒泡排序 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 冒泡排序算法的运作如下:(从后往前) 比较相邻的元素。如果第一个比第二个大

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实现数组全排序(递归)相关推荐

  1. java数组逆序_Java 数组的排序、逆序

    数组的排序.逆序测试数据 public static void main (String[] args) { // 数组逆序 int[] arr = {1,2,3,4,5,6,7}; reverse( ...

  2. 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: ...

  3. 数组逆序重放c语言,计算概论(A)/基础编程练习2(8题)/6:数组逆序重放

    #include int main() { // 输入n个整数 int n,array[n],count=-; scanf("%d", &n); // 循环读入元素 whi ...

  4. java将数组逆序输出_java将一个数组逆序输出-java将一个数组逆序输出的方法-吾爱编程网...

    今天吾爱编程为大家介绍一下java的经典实例将一个数组逆序输出,相信很多学习java的小伙伴都会接触到,有需要的小伙伴可以参考一下: 1.需求分析: 用第一个与最后一个交换, 第二个与倒数第二个交换, ...

  5. java string逆序_Java学习笔记(八)——异常

    本节主要内容是对 Java 的异常处理进行讲解,主要包含以下知识点: 异常分类 声明及抛出 捕获异常 自定义异常 * 异常堆栈 异常概述 对于程序的错误以及外部环境能够对用户造成的影响,我们应当及时报 ...

  6. Java怎么顺序 或 逆序排序数组

    对数组进行顺序排序 可使用Arrays类的sort( int[ ] a) 方法 Arrays.sort(a, cmp); 对数组进行倒序排序 使用实现Comparator接口: 排序时,只需要在sor ...

  7. java一维数组正序输出,java将一个数组逆序输出-java将一个数组逆序输出的方法-吾爱编程网...

    今天吾爱编程为大家分享一下Java的经典实例之一:java将一个数组逆序输出,有需要的小伙伴可以参考: 1.题目要求: 使用Java编程一个程序,将一个数组逆序输出 2.程序代码:public sta ...

  8. java 链表逆序 递归,java用递归和非递归实现链表逆序

    传统的逆序链表方法是使用三个指针来记录节点的状态,防止链表断裂. Node节点 public class Node { private int data; private Node next; pub ...

  9. 【Java】数组逆序操作。定义长度为10的数组,将数组元素对调并输出对调后的结果。

    题目:数组逆序操作.定义长度为10的数组,将数组元素对调并输出对调后的结果. 思路:把0索引和arr.length-1的元素交换,把1索引和arr.length-2元素交换--只要交换到arr.len ...

最新文章

  1. layerconfirm确认框的使用
  2. yum报错[Errno 256] No more mirrors to try.
  3. python 最简单的实现适配器设计模式
  4. Log4j 第三次发布漏洞补丁,漏洞或将长存
  5. 对HTTP基本认识(HTTP协议入门必备)
  6. left join 多条件_第九篇|Spark的五种JOIN策略解析
  7. Spring-beans-BeanFactoryPostProcessor
  8. [转]vs2003,安装程序检测到另一个程序要求计算机重新启动
  9. 27. Remove Element
  10. 联想叶明:“双态IT”不能一刀切理解
  11. 如何用python爬取抖音视频列表
  12. iphone开蓝牙wifi上网慢_iPhone手机网速慢解决方法
  13. SpringBoot的幕后推手,五年Java开发者小米、阿里面经
  14. 数据分析-面试(SQL真题)
  15. 为什么web网页会被劫持,网页被劫持的解决方法有哪些?
  16. 【ENM-LAP模型】基于ENM-LAP模型的移动自组织网络拓扑演进的matlab仿真
  17. 表格(table)属性cellspacing、cellpadding
  18. jsp运动会管理系统
  19. AWS-IAM学习笔记
  20. 机器学习理论-PAC learning

热门文章

  1. ThinkPHP 集成 PHPUnit 8 测试框架进行单元测试
  2. UIWindow简单介绍
  3. Mac Os 基本命令行
  4. python中dom是什么意思_python--BOM和DOM
  5. 散粉在哪个步骤用_美妆大神的定妆大法竟然这么好用?用完都不想卸妆了
  6. Linux中yum源配置及软件安装管理
  7. java 给控件添加边框_Android UI 利用Drawable Shape给控件加边框/立体效果
  8. linux权限管理详解,linux权限管理详解-Go语言中文社区
  9. java反射po转vo_三步走使用Dozer (Do,Po,Vo转换工具)
  10. 海门工业机器人_海门凹凸模压标机推荐-无锡胜宝机电