选择排序如果是从小到大排序,先找出排序对象中的最小数,然后与排序对象的第一个数对调位置,再从第二个数开始继续选择排序,如果第一个数就是最小数,那么就直接从第二个数开始选择排序
如数组是 :3,2,4,1,5,8,7
第1次排序:1,2,4,3,5,8,7 我们可以看到最小数是1与3对调了位置
第2次排序:1,2,4,3,5,8,7 继续从第二个数开始,第二个数是剩余元素的最小数不必调换,继续从第3个数开始
第3次排序:1,2,3,4,5,8,7
第4次排序:1,2,3,4,5,8,7
第5次排序:1,2,3,4,5,8,7
第6次排序:1,2,3,4,5,7,8
package datastructure;
public class SelectSort {
public SelectSort() {
}
public static void selectSort(int[] datas) {
for (int i = 0; i < datas.length - 1; i++) {
int flag = i;
int min = datas[i];
for (int j = i + 1; j <= datas.length - 1; j++) {
if (datas[j] < min) {
flag = j;
}
}
if (i != flag) {
int tmp = datas[flag];
datas[flag] = datas[i];
datas[i] = tmp;
}
System.out.print("第" + (i + 1) + "次排序:");
for (int j = 0; j < datas.length; j++) {
System.out.print(datas[j] + ",");
}
System.out.println();
}
}
public static void main(String[] args) {
int[] datas = {3,2,4,1,5,8,7};
SelectSort.selectSort(datas);
}
}
分享到:
相关推荐
(1) 完成5种常用内部排序算法的演示,5种排序算法为:快速排序,直接插入排序,选择排序,堆排序,希尔排序; (2) 待排序元素为整数,排序序列存储在数据文件中,要求排序元素不少于30个; (3) 演示程序开始,...
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
在本文中,我们将深入探讨四种经典的排序算法:插入排序、选择排序、基数排序和冒泡排序,以及它们在C++语言中的实现。 **插入排序(Insertion Sort)** 插入排序是一种简单直观的排序算法,它的工作原理类似于我们...
选择排序是一种简单的排序算法,它的基本思想是在未排序的序列中找到最小(或最大)的元素,存放到排序序列的起始位置,然后再从剩余未排序的元素中继续寻找最小(或最大)的元素,然后放到已排序序列的末尾。...
本文将深入探讨一种经典的排序算法——选择排序,并通过给定的C语言代码示例来详细解析其工作原理和实现过程。 ### 选择排序的基本概念 选择排序是一种简单直观的比较排序算法。其基本思想是在未排序序列中找到...
本话题主要探讨六种内部排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序以及堆排序。这六种排序算法各有优劣,适用于不同的场景,接下来我们将逐一进行详细阐述。 1. **直接插入排序**: 直接...
以下是关于"冒泡排序,选择排序,插入排序,希尔排序,堆排序,归并排序,快速排序"这七种常见排序算法的源码实现及相关知识点的详细解释: 1. **冒泡排序**:冒泡排序是一种简单的排序算法,它重复地遍历待排序的...
本资源提供了七大经典排序算法的实现程序,包括快速排序、冒泡排序、选择排序、归并排序、插入排序、希尔排序和堆排序。下面将逐一详细介绍这些排序算法及其原理。 1. 快速排序:由C.A.R. Hoare提出,是一种采用...
### 选择排序详解 #### 一、选择排序简介 选择排序是一种简单直观的比较排序算法。它的基本思想是:在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小...
本主题涵盖了六种经典的排序算法:希尔排序、堆排序、快速排序、简单选择排序、插入排序和冒泡排序。这些算法各有特点,适用于不同的场景,下面将逐一详细介绍。 1. **希尔排序**:希尔排序是由Donald Shell提出的...
简单选择排序是一种基础且直观的排序算法,虽然效率较低,但对理解排序原理非常有帮助。当我们需要在单链表这种非数组结构上进行排序时,需要对基本的简单选择排序算法进行一些调整。接下来,我们将详细探讨如何在...
在本文中,我们将深入探讨四种常见的内部排序方法:插入排序、快速排序、选择排序以及再次提到的选择排序。这四种排序方法在不同的场景下各有优劣,理解它们的工作原理和性能特性对于优化算法至关重要。 **1. 插入...
冒泡排序和选择排序是两种基础的排序算法,它们在计算机科学中有着广泛的应用,尤其在教学和理解排序原理时非常关键。这两种算法虽然简单,但在特定情况下可以通过优化提高效率。 首先,我们来详细探讨冒泡排序。...
线性选择排序是一种基础的排序算法,其主要思想是通过遍历待排序的序列,找到当前未排序部分的最小(或最大)元素,将其与序列的第一个元素交换位置,然后对剩下的元素重复此过程,直到整个序列有序。这个过程可以...
冒泡排序和选择排序是两种基础的排序算法,在计算机科学中有着广泛的应用,尤其是在学习编程语言如C语言时,理解并能实现这两种排序算法是非常重要的。下面将详细讲解这两种排序方法以及它们在C语言中的实现。 **...
本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...
本项目聚焦于选择排序法,这是一种简单直观的排序算法,适用于小规模数据集或教学目的。 选择排序的工作原理如下: 1. **基本概念**:选择排序是一种不稳定的排序方法,它通过重复地找出待排序序列中的最小(或...
本文将深入探讨C#中常见的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序,以及它们的实现细节和应用场合。 首先,我们来看**冒泡排序**。冒泡排序是一种简单的交换排序方法,它通过不断比较相邻元素并交换...
选择排序是一种简单直观的排序算法,它的工作原理可以分为以下几个步骤: 1. **理解选择排序**:选择排序从数组的第一个元素开始,遍历数组寻找当前未排序部分的最小(或最大)元素。找到后,将这个最小(或最大)...
本项目涵盖了五种经典的排序算法:快速排序、堆排序、归并排序、插入排序和选择排序。接下来,我们将深入探讨这些算法的原理、实现及性能特点。 1. **快速排序**: 快速排序由C.A.R. Hoare在1960年提出,是一种采用...