选择排序
选择排序相对于冒泡来说,它不是每次发现逆序都交换,而是在找到全局第i小的时候记下该元素位置,最后跟第i个元素交换,从而保证数组最终的有序。
相对与插入排序来说,选择排序每次选出的都是全局第i小的,不会调整前i个元素了。
package algorithms.sort;
import algorithms.AbstractSort;
public class SelectSort extends AbstractSort {
@Override
public void sort(int[] array) {
int len = array.length;
for (int i = 0; i < len; i++) {
int smallest = i;
int j = i;
for (; j < len; j++) {
if (array[j] - array[smallest] < 0) {
smallest = j;
}
}
swap(array,i,smallest);
}
}
}
分享到:
相关推荐
这里我们将深入探讨标题和描述中提到的六种排序算法:快速排序、归并排序、插入排序、冒泡排序、选择排序以及堆排序。 1. **快速排序**:由C.A.R. Hoare在1960年提出,是一种高效的分治算法。快速排序的基本思想是...
Java排序算法实现主要涉及到两种经典的算法:冒泡排序和选择排序。这两种算法都是基于比较的排序方法,适用于小规模或教学目的的数据排序。 **冒泡排序(Bubble Sort)** 是一种简单直观的排序算法,其核心思想是...
### Java排序算法详解 在Java编程中,排序算法是数据结构与算法中不可或缺的一部分,它不仅能够帮助我们理解和处理数据,还能提升程序的性能。本文将深入探讨Java中常见的几种基本排序算法,包括插入排序、交换排序...
本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...
冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python...
**选择排序**是一种基础的排序算法,其基本思想是通过不断地选择未排序序列中的最小(或最大)元素,放到已排序序列的末尾,直到全部待排序的数据元素排完。这种算法的时间复杂度为O(n^2),其中n是数组的长度。尽管...
希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:...
Java作为广泛应用的编程语言,提供了一种高效实现各种排序算法的平台。本资源包含了几种基本的排序算法,如冒泡排序、选择排序和插入排序,这些都是理解和学习算法的基础。 **冒泡排序**是最基础的排序算法之一,它...
java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡
Java 排序算法使用及场景说明 本文档主要介绍了 Java 排序算法的使用和场景说明,包括了五个实践场景的解决方案。 Scenario 1: 找出两个文件共同的 URL 在这个场景中,我们有两个文件 a 和 b,每个文件中存放了 ...
Java排序算法大全是一份专为Java开发者准备的学习资源,涵盖了各种经典的排序算法,旨在帮助初学者和有经验的程序员深入理解排序的原理和实现。排序是计算机科学中的基础且重要的概念,它在数据处理、数据库操作、...
在编程领域,排序算法是计算机科学中的核心概念,特别是在Java这样的高级编程语言中。排序算法是用来组织和优化数据结构的关键工具,它可以帮助我们快速查找、分析和处理数据。本资源包含的是Java实现的各种常见排序...
理解和熟练掌握这些排序算法,不仅可以提高编程能力,还能在解决实际问题时选择最适合的排序方法,从而优化程序性能。在实际开发中,结合数据结构和算法,可以有效地处理大量数据,提升软件系统的效率。
这个名为"java排序算法-大全.rar"的压缩包文件显然包含了多种Java实现的排序算法,这对于我们理解和掌握这些算法至关重要。 首先,让我们从标签提及的两个经典排序算法开始:冒泡排序和折半排序。 1. **冒泡排序**...
本主题将深入探讨Java实现的选择排序算法,这是一种简单直观的排序算法,适合新手学习。 选择排序(Selection Sort)的基本思想是,在未排序的序列中找到最小(或最大)的元素,放到序列的起始位置,然后再从剩余未...
堆排序:应用Java和Python分别实现堆排序算法; 堆排序:应用Java和Python分别实现堆排序算法; 堆排序:应用Java和Python分别实现堆排序算法; 堆排序:应用Java和Python分别实现堆排序算法; 堆排序:应用Java和...
该工具包含有Java一些比较常见的排序算法和查找算法。 排序算法包括:冒泡排序、选择排序 、插入排序、希尔排序、快速排序、归并排序、基数排序(桶排序) 查找算法包括:线性查找、二分查找、插值查询、斐波那契...
Java排序算法实现 Java排序算法实现 Java排序算法实现
根据提供的文件信息,我们可以总结出以下几个关键的排序算法知识点: ### 1. 插入排序 (Insertion Sort) 插入排序是一种简单直观的排序算法。...在实际应用中,可以根据具体情况选择合适的排序算法以达到最优效果。