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中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...
随机推荐
- Leetcode 1020. 将数组分成和相等的三个部分
1020. 将数组分成和相等的三个部分 显示英文描述 我的提交返回竞赛 用户通过次数321 用户尝试次数401 通过次数324 提交次数883 题目难度Easy 给定一个整数数组 A,只有我们可 ...
- WDA基础四:Select-option的使用
select option是方便用户和数据处理的,就是丑了点... 前面使用的input直接做查询条件有哥弊端,就是查询的时候需要判断字段是否有选择条件,然后要将选择条件做成range table.. ...
- sonar-gerrit plugin配置
配置 sonar-gerrit plugins stepspre-condition:1. Sonarqube(5.5及以上,本文使用的版本为6.1.3)关于如何安装配置Sonarqube,请参考其他 ...
- 通过cassandra-cli客户端了解cassandra的内部数据结构
和cassandra数据库交互的方式有两种,一种是通过类似于cassandra-cli命令的thrift api,或者通过cassandra提供的cql(cassandra query lanugag ...
- 通过DBMS_REDEFINITION包对表在线重定义
基础介绍 Oracle Online Redefinition可以保证在数据表进行DDL类型操作,如插入.删除数据列,分区处理的时候,还能够支持DML操作,特别是insert/update/delet ...
- ActiveMQ 中的链表
ActiveMQ 中的消息在内存中时,以链表形式保存,以 PendingList 表示,每一个消息是 PendingNode. PendingList 主要有2种实现:OrderedPendingLi ...
- 浅谈XXE漏洞攻击与防御——本质上就是注入,盗取数据用
浅谈XXE漏洞攻击与防御 from:https://thief.one/2017/06/20/1/ XML基础 在介绍xxe漏洞前,先学习温顾一下XML的基础知识.XML被设计为传输和存储数据,其焦点 ...
- CentOS配置教程
1.配置网卡开机自动启动 查看/etc/sysconfig/network-scripts/ifcfg-eth0的初始内容: cat /etc/sysconfig/network-scripts/if ...
- 文件查找命令find
十六. 文件查找命令find: 下面给出find命令的主要应用示例: /> ls -l #列出当前目录下所包含的测试文件 -rw-r--r--. 1 root root 48 ...
- startActivityForResult的用法,以及intent传递图片
开启startActivityForResult. Intent intent = new Intent(); intent.setClass(MainActivity.this, MipcaActi ...