import java.util.Scanner;

 public class OrderBy {

     public static void main(String[] args) {
// Scanner scan = new Scanner(System.in);
// System.out.println("1到n的和,请输入n···");
// int i = scan.nextInt();
System.out.println(fun(100));//递归 int[] aArray = {7,5,3,8,2,9,1,4,6};//目标数组
orderBy1(aArray);//选择排序
orderBy2(aArray);//冒泡排序
orderBy3(aArray);//插入排序
}
/**
* 递归
* @param i
* @return
*/
private static int fun(int i){ if(i==1){
return 1;//递归基数(1到1的和为1)
}
else{
int sum = i+fun(i-1);//i加1到(i-1)的和
/**
* 其中fun(i-1) = (i-1)+fun(i-2),以此类推
*/
return sum;
}
}
/**
* 排序1
* 选择
*/
private static void orderBy1(int[] aArray){ for(int i=0;i<aArray.length;i++){
int var=aArray[i];//每次初值为第一位
for(int j=i;j<aArray.length;j++){//从索引i开始
var = var<aArray[j]?var:aArray[j];//三元取较小值
}
for(int j=i;j<aArray.length;j++){//从索引i开始让最小值和i为互换位置
if(aArray[j]==var){
aArray[j]=aArray[i];
aArray[i]=var;
}
}
}
for(int m:aArray){//for each遍历新数组
System.out.print(m+"\t");
}
System.out.println();
}
/**
* 排序2
* 冒泡
*/
private static void orderBy2(int[] arr){ for(int i=0;i<arr.length-1;i++){
int var = arr[i];
if(var>arr[i+1]){//互换位置,小的排前面
arr[i] = arr[i+1];
arr[i+1] = var;
i=-1;//重新遍历
}
}
for(int m:arr){
System.out.print(m+"\t");
}
System.out.println();
}
/**
* 排序3
* 插入
*/
private static void orderBy3(int[] arr){
for(int i=1;i<arr.length;i++){//遍历
//逐个与排完序部分比较,第一次遇到比之大的数时则插入该数的位置,将后面部分往后挤
int var = arr[i];
No1:for(int j=0;j<i;j++){
if(var<arr[j]){
for(int m=i;m>=j;m--){//j到i之间的元素后移1位
if(m>j){
arr[m]=arr[m-1];//j之后i之前的元素后移一位
}else{
arr[j]=var;//把var插入到j索引处
}
}
break No1;//遇到第一个比var大的数,排完序后结束比较
}
}
}
for(int n:arr){
System.out.print(n+"\t");
}
System.out.println();
}
}

结果:

java数组排序(插入排序、冒泡排序、选择排序)与递归 代码示例的更多相关文章

  1. C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序

    C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序 以下列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序 ...

  2. 算法 排序lowB三人组 冒泡排序 选择排序 插入排序

    参考博客:基于python的七种经典排序算法   [经典排序算法][集锦]     经典排序算法及python实现 首先明确,算法的实质 是 列表排序.具体就是操作的列表,将无序列表变成有序列表! 一 ...

  3. 学习C#之旅 冒泡排序,选择排序,插入排序,希尔排序[资料收集]

    关于冒泡排序,选择排序,插入排序,希尔排序[资料收集]  以下资料来源与网络 冒泡排序:从后到前(或者从前到后)相邻的两个两两进行比较,不满足要求就位置进行交换,一轮下来选择出一个最小(或最大)的放到 ...

  4. python算法(一)基本知识&冒泡排序&选择排序&插入排序

    本节内容: 算法基本知识 冒泡排序 选择排序 插入排序 1. 算法基本知识 1.1 什么是算法? 算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为 ...

  5. 归并排序 & 计数排序 & 基数排序 & 冒泡排序 & 选择排序 ----> 内部排序性能比较

    2.3 归并排序 接口定义: int merge(void* data, int esize, int lpos, int dpos, int rpos, int (*compare)(const v ...

  6. C语言实现 冒泡排序 选择排序 希尔排序

    // 冒泡排序 // 选择排序 // 希尔排序 // 快速排序 // 递归排序 // 堆排序 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h& ...

  7. Python排序算法之选择排序定义与用法示例

    Python排序算法之选择排序定义与用法示例 这篇文章主要介绍了Python排序算法之选择排序定义与用法,简单描述了选择排序的功能.原理,并结合实例形式分析了Python定义与使用选择排序的相关操作技 ...

  8. Python实现各种排序算法的代码示例总结

    Python实现各种排序算法的代码示例总结 作者:Donald Knuth 字体:[增加 减小] 类型:转载 时间:2015-12-11我要评论 这篇文章主要介绍了Python实现各种排序算法的代码示 ...

  9. 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例

    019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...

随机推荐

  1. PAT 1031 Hello World for U

    1031 Hello World for U (20 分)   Given any string of N (≥) characters, you are asked to form the char ...

  2. Leetcode 1008. 先序遍历构造二叉树

    1008. 先序遍历构造二叉树  显示英文描述 我的提交返回竞赛   用户通过次数169 用户尝试次数183 通过次数171 提交次数247 题目难度Medium 返回与给定先序遍历 preorder ...

  3. flask-后台布局页面搭建4

    1.  搭建后台页面 5.1管理员登录 步骤:1.在admin视图中导入from flask import render_template,redirect,url_for.并写入一下代码. #登录 ...

  4. 十八、Spring框架(AOP)

    一.AOP(基于XML方式配置AOP) AOP(Aspect Oriented Program):面向切面编程.思想是:把功能分为核心业务功能和周边功能. 所谓核心业务功能:比如登录,增删改数据都叫做 ...

  5. js 手机号码和电话号码正则校验

    checkPhone() { var mobile = ''; var tel = /^0\d{2,3}-?\d{7,8}$/; var phone = /^(((13[0-9]{1})|(15[0- ...

  6. Linux基线合规检查中各文件的作用及配置脚本

    1./etc/motd 操作:echo " Authorized users only. All activity may be monitored and reported " ...

  7. C/C++ 全局变量的访问

    #include <iostream> using namespace std; ; int main(int argc, char **argv) { ; std::cout <& ...

  8. AI新建文件可以新建多个画板5.2

  9. linux 安装 DenyHosts 防止密码被暴力破解

    DenyHosts DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.deny文件 ...

  10. jenkins使用jacoco插件检测代码覆盖率(八)

    代码覆盖率:类覆盖,方法覆盖,行覆盖,指令覆盖……(简而言之,就是判断有没有被执行) 覆盖率 = 已经执行的代码 / 总代码 (1)创建maven项目,配置pom.xml如下 pom.xml < ...