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中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...
随机推荐
- Django之权限管理插件
一.功能分析: 一个成熟的web应用,对权限的控制.管理是不可少的:对于一个web应用来说是什么权限? 这要从web应用的使用说起,用户在浏览器输入一个url,访问server端,server端返回这 ...
- nop 4.1 Widget 探究- 视图组件
1. 系统默认自带了一个NivoSlider 的Wdget. 在Nop.Web项目首页的HomePageTop里 这个写法是 ASP.NET Core MVC 中的新特性 视图组件,与局部视图相似,但 ...
- jeasyUI DataGrid 根据屏幕宽度自适应, 改变右侧滚动条Size
PC浏览器的Datagrid可以显示多几列,但是在手机浏览器时,只能有选择性的显示前几列. $(window).resize(function () { if (document.body.clien ...
- react router @4 和 vue路由 详解(八)vue路由守卫
完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 13.vue路由守卫 a.beforeEach 全局守卫 (每个路由调用前都会触发,根据 ...
- Ubuntu 16.04 中安装谷歌 Chrome 浏览器
http://jingyan.baidu.com/article/335530da98061b19cb41c31d.html 根据教程安装成功!! http://askubuntu.com/quest ...
- 如何破解Visual studio 2013
1.打开VS2013点击菜单栏中的帮助,选择注册产品. 2.如下图所示,你就可以看到你的VS是不是试用版了,很显然,现在我的还是试用版,还有20天的使用期限. 3.如下图所示,点击更改我的产品许可证. ...
- 使用markdown第一个博客
markdown,I coming ! System.out.println("I m coming");
- 每天CSS学习之transform
transform是CSS3的一个属性,其作用是用来进行2D或3D变换. 一.2D变换 1. translate(x-offset , y-offset) translate的作用就是用作位置的移动. ...
- vue-7-表单
示例: <input v-model="message" placeholder="edit me"> <p>Message is: { ...
- 用servlet实现用户登录案例
以下实现登录窗口 Login.jsp <!--Login.jsp--> <%@ page language="java" import="java.ut ...