java数组排序(插入排序、冒泡排序、选择排序)与递归 代码示例
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数组排序(插入排序、冒泡排序、选择排序)与递归 代码示例的更多相关文章
- C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序
C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序 以下列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序 ...
- 算法 排序lowB三人组 冒泡排序 选择排序 插入排序
参考博客:基于python的七种经典排序算法 [经典排序算法][集锦] 经典排序算法及python实现 首先明确,算法的实质 是 列表排序.具体就是操作的列表,将无序列表变成有序列表! 一 ...
- 学习C#之旅 冒泡排序,选择排序,插入排序,希尔排序[资料收集]
关于冒泡排序,选择排序,插入排序,希尔排序[资料收集] 以下资料来源与网络 冒泡排序:从后到前(或者从前到后)相邻的两个两两进行比较,不满足要求就位置进行交换,一轮下来选择出一个最小(或最大)的放到 ...
- python算法(一)基本知识&冒泡排序&选择排序&插入排序
本节内容: 算法基本知识 冒泡排序 选择排序 插入排序 1. 算法基本知识 1.1 什么是算法? 算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为 ...
- 归并排序 & 计数排序 & 基数排序 & 冒泡排序 & 选择排序 ----> 内部排序性能比较
2.3 归并排序 接口定义: int merge(void* data, int esize, int lpos, int dpos, int rpos, int (*compare)(const v ...
- C语言实现 冒泡排序 选择排序 希尔排序
// 冒泡排序 // 选择排序 // 希尔排序 // 快速排序 // 递归排序 // 堆排序 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h& ...
- Python排序算法之选择排序定义与用法示例
Python排序算法之选择排序定义与用法示例 这篇文章主要介绍了Python排序算法之选择排序定义与用法,简单描述了选择排序的功能.原理,并结合实例形式分析了Python定义与使用选择排序的相关操作技 ...
- Python实现各种排序算法的代码示例总结
Python实现各种排序算法的代码示例总结 作者:Donald Knuth 字体:[增加 减小] 类型:转载 时间:2015-12-11我要评论 这篇文章主要介绍了Python实现各种排序算法的代码示 ...
- 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例
019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...
随机推荐
- python 小练习4
给你一个整数list L, 如 L=[2,-3,3,50], 求L的一个连续子序列,使其和最大,输出最大子序列的和. 例如,对于L=[2,-3,3,50], 输出53(分析:很明显,该列表最大连续子序 ...
- iOS block 机制
本文要将block的以下机制,并配合具体代码详细描述: block 与 外部变量 block 的存储域:栈块.堆块.全局块 定义 块与函数类似,只不过是直接定义在另一个函数里,和定义它的那个函数共享同 ...
- 【转】JS常用函数整合库 lutils
lutils 此工具包是在 outils 的基础上,加上个人平时收集的代码片段进行的二次整合 outils的GitHub:https://github.com/proYang/outils/blob/ ...
- npm使用国内淘宝镜像的方法
一.通过命令配置 1. 命令 npm config set registry https://registry.npm.taobao.org 2. 验证命令 npm config get regist ...
- CentOS7和CentOS6的区别
1.文件系统 centos6--ext4 centos7--xfs 说明:fdisk等磁盘操作命令使用都一样,只是格式化磁盘时使用mkfs.xfs而不要用mkfs.ext4,ext4的文件系统在cen ...
- mybatis枚举自动转换(通用转换处理器实现)
https://blog.csdn.net/fighterandknight/article/details/51520595 https://blog.csdn.net/fighterandknig ...
- mac ci框架安装使用 memcached存session
mac 安装memcached brew info memcached brew install memcached brew install memcached 安装过程具体不详细多讲 memcac ...
- [x] 封装、继承,多态
那么多态的作用是什么呢,封装可以使得代码模块化,继承可以扩展已存在的代码,他们的目的都是为了代码重用. 而多态的目的则是为了接口重用.也就是说,不论传递过来的究竟是那个类的对象,函数都能够通过同一个接 ...
- POJ 2373 Dividing the Path(DP + 单调队列)
POJ 2373 Dividing the Path 描述 农夫约翰的牛发现,在他的田里沿着山脊生长的三叶草是特别好的.为了给三叶草浇水,农夫约翰在山脊上安装了喷水器. 为了使安装更容易,每个喷头必须 ...
- Win10系列:JavaScript综合实例1
上面几个小节讲解了使用HTML5和JavaScript语言开发Windows 应用商店应用时会用到的一些技术,本小节将前面介绍的知识融合在一起创建一个菜谱应用程序,帮助读者更进一步地理解和掌握这些知识 ...