选择排序是简单排序的一种,其排序思想为:首先将第一个数标记为最大数,其位置为最大数的位置;然后排除第一个数,使用第一个数和剩下的数依次比较,若剩下的数大于第一个数,则继续比较,直到找到最大数为止;最后判断实际最大数的位置是否就是默认最大数的位置,若不是,则用第一个数的位置和最大数的位置进行交换,则此时第一个数就是实际最大数。以此类推,比较剩下的数,得到降序排列;反之为升序排列。

/** 选择降序排序 **/
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选择排序(升序和降序)相关推荐

  1. Java stream().sorted()实现排序(升序、降序、多字段排序)

    1 自然排序 sorted():自然排序,流中元素需实现Comparable接口 package com.entity;import lombok.*;@Data @ToString @AllArgs ...

  2. java comparable排序_java 实现Comparable接口排序,升序、降序、倒叙

    本人由于项目开发中需要对查询结果list进行排序,这里根据的是每一个对象中的创建时间降序排序.本人讲解不深,只实现目的,如需理解原理还需查阅更深的资料. 1.实现的效果 2.创建排序的对象 packa ...

  3. java——数组排序(升序和降序排列)

    目录 任务2.数组排序(升序和降序排列) 1.选择法排序 (1)选择法排序含义 (2)选择法排序实现步骤 2.冒泡法排序 (1)冒泡法排序含义 (2)冒泡法排序实现步骤 补充:利用Arrays工具提供 ...

  4. Java comparator(升序,降序)

    Java comparator(升序,降序) 官方默认升序,基于: < return -1 = return 0 > return 1 降序,基于 < return 1 = retu ...

  5. Java中的升序和降序

    1.使用Arrays中的升序API(sort)进行升序 代码示例如下: public class px {public static void main(String[] args) {int[] a ...

  6. Excel表格怎么排序?升序和降序

    Excel拥有许许多多的功能,几乎你想要的效果都可与通过Excel来实现,只有想不到没有它做不到的.那么我们在处理数据的同时,会想知道哪些数据是靠前的,哪些数据是靠后的.那么我们就来给大家讲解下Exc ...

  7. java compare排序_java compare 降序/升序怎么确定

    展开全部 先举个例子 1 2 5 3 6 9 7 从大家的认知来看,上面的数字从小到大为 1 2 3 5  6 7 9 但是如果是一对的字符串或者对象呢? 那么就需要32313133353236313 ...

  8. java数组排序,升序和降序

    文章目录 前言 基本数据类型排序 升序 降序排列 基本数据类型包装类 升序 降序 对象排序 升序 降序 前言 对于数组的排序一直很疑惑,尤其是如何对数组进行降序排列,例如要对int[]类型的数组降序排 ...

  9. Java—数组排序(升序和降序)

    文章目录 数组排序的三种方法 1.选择法排序 2.冒泡排序法 3.利用Arrays工具提供的sort()方法实现数组排序 打印杨辉三角形 (一)编程实现 数组排序的三种方法 1.选择法排序 2.冒泡排 ...

  10. 对list集合排序升序和降序使用sort()

    Collections.sort(resultList, new Comparator<HealthRecordRepeat>() { @Override public int compa ...

最新文章

  1. 复杂多变场景下的Groovy脚本引擎实战
  2. 比尔.盖茨人生的四张面孔
  3. wget安装Jenkins
  4. php根据位置获取经纬度(百度地图)
  5. Python基础——正则2(0503)
  6. ASP.NETAPI跨域设置(超简易)
  7. Android之属性动画初步
  8. python去重复功能_消除Python列表重复的几种方法,python,去,一些
  9. Flex 页面空白或Error #2032: 流错误处理办法
  10. native内存泄漏分析
  11. Java常用代码汇总(经典代码)
  12. [王垠系列]什么是语义学
  13. 防住CV中这颗“不定时炸弹”,有哪些捷径?丨独家公开课实录(4)
  14. 中国英语市场营销分析与竞争形势调研报告2022版
  15. Java转Go语言 -4
  16. EHW_DIMM分类与比较
  17. [EJB:011008]Unable to bind EJB Home Interface to the JNDI name: BusinessDelegateBean.
  18. C/C++内存泄漏及检测
  19. linux有读EC RAM的工具吗,Shell下的ITE EC Tools
  20. 跟我学Android之一 概述

热门文章

  1. 万能淘口令生成api,淘口令转化api,淘口令万能版api,淘口令生成器api
  2. 简单爬虫爬取知乎日报并保存日报网页到本地
  3. Everything使用攻略和技巧
  4. dBm与功率(w)换算关系
  5. 《暗时间》读书笔记及读后感
  6. 最新版微型商城2.0版网站源码 带有一键安装
  7. 数据库管理系统的基本组成
  8. 8 款免费的 MySQL 数据库建模工具
  9. root 红米note5_小米红米Note 5(不要降级刷低版本)手机完美获取root教程,最强root工具,亲测可用!...
  10. matlab 读取odb,求教用C++方式读取abaqus的odb数据中的问题!!!