选择排序

选择排序

概况

选择排序是一种简单直观的排序算法,它的思想是每次从未排序的部分中选择最小(或最大)的元素,并将其放到已排序部分的末尾。通过重复这个过程,直到整个数组排序完成。

选择排序的时间复杂度是O(n^2),其中n是数组的长度。与冒泡排序相比,选择排序的交换操作更少,因此在实际应用中可能稍微快一些。然而,选择排序每次只找到一个最小值(或最大值),并将其放到正确的位置,因此在大规模数据排序时,选择排序的效率仍然相对较低。

步骤

选择排序的实现步骤如下:

  1. 遍历数组,将第一个元素作为已排序部分,将其标记为最小(或最大)值。
  2. 在未排序部分中找到最小(或最大)值,将其与已排序部分的末尾交换位置。
  3. 确定下一个要排序的元素,将已排序部分增加一个元素。
  4. 重复步骤2和步骤3,直到整个数组排序完成。

代码示例

需求:将数组中的数据进行排序,数据如下:{2, 7, 9, 4, 5, 6, 10, 3, 8, 1};

例如:

java 复制代码
package text.text02;

/*
选择排序:(先确定小的,再确定大的)
  1,从0索引开始,跟后面的元素一一比较。
  2,小的放前面,大的放后面。
  3,第一次循环结束后,最小的数据已经确定。
  4,第二次循环从1索引开始以此类推。

 */
public class text12A {
    public static void main(String[] args) {
        int[] arr = {2, 7, 9, 4, 5, 6, 10, 3, 8, 1};
        //外循环表示要执行的次数,如果有n个数据,则要执行n-1次
        for (int i = 0; i < arr.length - 1; i++) {
            //内循环表示相邻数据两两交换
            for (int j = i + 1; j < arr.length; j++) {
                //数据交换
                if (arr[i] > arr[j]) {
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        //
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "  ");   //1  2  3  4  5  6  7  8  9  10
        }
    }
}

输出结果

相关推荐
_MyFavorite_2 分钟前
JAVA重点基础、进阶知识及易错点总结(14)字节流 & 字符流
java·开发语言·python
BieberChen22 分钟前
匈牙利匹配算法 (Hungarian Algorithm) 详解
算法
春栀怡铃声30 分钟前
常考排序的梳理
数据结构·算法·排序算法
第二只羽毛30 分钟前
第六章 图
大数据·数据结构·算法·深度优先·图论·广度优先·宽度优先
好家伙VCC33 分钟前
**CQRS模式实战:用Go语言构建高并发读写分离架构**在现代分布式系统中,随着业务复杂度的提升和用户量的增长,传统的单数据库模型逐
java·数据库·python·架构·golang
fy1216333 分钟前
Java进阶——IO 流
java·开发语言·python
二妹的三爷34 分钟前
Node.JS 版本管理工具 Fnm 安装及配置(Windows)
java
cngkqy35 分钟前
NoClassDefFoundError: org/apache/poi/logging/PoiLogManager
java
l1o3v1e4ding1 小时前
Java网站项目集成GO-FLY开源在线客服系统功能,集成IM即时通信
java·golang·开源
m0_651593911 小时前
领域驱动设计(DDD)实战指南:如何正确构建复杂系统
java·软件工程·ddd