Java选择排序(升序和降序)
选择排序是简单排序的一种,其排序思想为:首先将第一个数标记为最大数,其位置为最大数的位置;然后排除第一个数,使用第一个数和剩下的数依次比较,若剩下的数大于第一个数,则继续比较,直到找到最大数为止;最后判断实际最大数的位置是否就是默认最大数的位置,若不是,则用第一个数的位置和最大数的位置进行交换,则此时第一个数就是实际最大数。以此类推,比较剩下的数,得到降序排列;反之为升序排列。
/** 选择降序排序 **/
public static int[] dascSort(int[] param) {
int in, out;
int max;
int temp;
for (out = 0; out < param.length; out++) {
// 默认最大数的位置
max = out;
for (in = out + 1; in < param.length; in++) {
if (param[max] < param[in]) {
// 获取最大数的位置
max = in;
}
}
// 当默认位置的最大数并不是实际的最大数时,和实际的最大数交换位置
if (out != max) {
temp = param[out];
param[out] = param[max];
param[max] = temp;
}
}
return param;
}
/** 选择升序排序 **/
public static int[] ascSort(int[] param) {
int in, out;
int max;
int temp;
for (out = param.length - 1; out > 0; out--) {
// 默认最大数的位置
max = out;
for (in = out - 1; in > 0; in--) {
if (param[max] < param[in]) {
max = in;
}
}
// 当默认位置的最大数并不是实际的最大数时,和实际的最大数交换位置
if (out != max) {
temp = param[out];
param[out] = param[max];
param[max] = temp;
}
}
return param;
}
执行升序和降序方法:
public static void main(String[] args) {
int[] param = { 1, 6, 7, 5 };
param = ascSort(param);
System.out.print("升序结果为:");
for (int i = 0; i < param.length; i++) {
System.out.print(param[i]);
}
System.out.println("");
param = dascSort(param);
System.out.print("降序结果为:");
for (int i = 0; i < param.length; i++) {
System.out.print(param[i]);
}
}
运行结果如下:
注意:
1、选择排序的效率为O(N*N),比较次数最多为N(N-1)/2,交换次数最多为N-1<N,其中N代表需要比较的数的个数;
2、选择排序不稳定
Java选择排序(升序和降序)相关推荐
- Java stream().sorted()实现排序(升序、降序、多字段排序)
1 自然排序 sorted():自然排序,流中元素需实现Comparable接口 package com.entity;import lombok.*;@Data @ToString @AllArgs ...
- java comparable排序_java 实现Comparable接口排序,升序、降序、倒叙
本人由于项目开发中需要对查询结果list进行排序,这里根据的是每一个对象中的创建时间降序排序.本人讲解不深,只实现目的,如需理解原理还需查阅更深的资料. 1.实现的效果 2.创建排序的对象 packa ...
- java——数组排序(升序和降序排列)
目录 任务2.数组排序(升序和降序排列) 1.选择法排序 (1)选择法排序含义 (2)选择法排序实现步骤 2.冒泡法排序 (1)冒泡法排序含义 (2)冒泡法排序实现步骤 补充:利用Arrays工具提供 ...
- Java comparator(升序,降序)
Java comparator(升序,降序) 官方默认升序,基于: < return -1 = return 0 > return 1 降序,基于 < return 1 = retu ...
- Java中的升序和降序
1.使用Arrays中的升序API(sort)进行升序 代码示例如下: public class px {public static void main(String[] args) {int[] a ...
- Excel表格怎么排序?升序和降序
Excel拥有许许多多的功能,几乎你想要的效果都可与通过Excel来实现,只有想不到没有它做不到的.那么我们在处理数据的同时,会想知道哪些数据是靠前的,哪些数据是靠后的.那么我们就来给大家讲解下Exc ...
- java compare排序_java compare 降序/升序怎么确定
展开全部 先举个例子 1 2 5 3 6 9 7 从大家的认知来看,上面的数字从小到大为 1 2 3 5 6 7 9 但是如果是一对的字符串或者对象呢? 那么就需要32313133353236313 ...
- java数组排序,升序和降序
文章目录 前言 基本数据类型排序 升序 降序排列 基本数据类型包装类 升序 降序 对象排序 升序 降序 前言 对于数组的排序一直很疑惑,尤其是如何对数组进行降序排列,例如要对int[]类型的数组降序排 ...
- Java—数组排序(升序和降序)
文章目录 数组排序的三种方法 1.选择法排序 2.冒泡排序法 3.利用Arrays工具提供的sort()方法实现数组排序 打印杨辉三角形 (一)编程实现 数组排序的三种方法 1.选择法排序 2.冒泡排 ...
- 对list集合排序升序和降序使用sort()
Collections.sort(resultList, new Comparator<HealthRecordRepeat>() { @Override public int compa ...
最新文章
- 复杂多变场景下的Groovy脚本引擎实战
- 比尔.盖茨人生的四张面孔
- wget安装Jenkins
- php根据位置获取经纬度(百度地图)
- Python基础——正则2(0503)
- ASP.NETAPI跨域设置(超简易)
- Android之属性动画初步
- python去重复功能_消除Python列表重复的几种方法,python,去,一些
- Flex 页面空白或Error #2032: 流错误处理办法
- native内存泄漏分析
- Java常用代码汇总(经典代码)
- [王垠系列]什么是语义学
- 防住CV中这颗“不定时炸弹”,有哪些捷径?丨独家公开课实录(4)
- 中国英语市场营销分析与竞争形势调研报告2022版
- Java转Go语言 -4
- EHW_DIMM分类与比较
- [EJB:011008]Unable to bind EJB Home Interface to the JNDI name: BusinessDelegateBean.
- C/C++内存泄漏及检测
- linux有读EC RAM的工具吗,Shell下的ITE EC Tools
- 跟我学Android之一 概述
热门文章
- 万能淘口令生成api,淘口令转化api,淘口令万能版api,淘口令生成器api
- 简单爬虫爬取知乎日报并保存日报网页到本地
- Everything使用攻略和技巧
- dBm与功率(w)换算关系
- 《暗时间》读书笔记及读后感
- 最新版微型商城2.0版网站源码 带有一键安装
- 数据库管理系统的基本组成
- 8 款免费的 MySQL 数据库建模工具
- root 红米note5_小米红米Note 5(不要降级刷低版本)手机完美获取root教程,最强root工具,亲测可用!...
- matlab 读取odb,求教用C++方式读取abaqus的odb数据中的问题!!!