package boke.sort;
/**
* 选择排序
*
* @since jdk1.5及其以上
* @author 毛正吉
* @version 1.0
* @date 2010.05.24
*
*/
public class SelectSort {
/**
* @param args
*/
public static void main(String[] args) {
int maxSize = 100;
SelectSort bs = new SelectSort(maxSize);
bs.insert(77);
bs.insert(66);
bs.insert(22);
bs.insert(99);
bs.insert(85);
bs.insert(37);
bs.insert(75);
bs.insert(64);
bs.insert(15);
bs.insert(35);
bs.output(); // 原始输出
bs.selectSort(); // 排序
bs.output(); // 排序输出
}
private long[] a; // 整型数据容器
private int nElems; // 元素个数
/**
* 构造方法
*
* @param maxSize
*/
public SelectSort(int maxSize) {
a = new long[maxSize];
nElems = 0;
}
/**
* 容器放入数据
*
* @param value
*/
public void insert(long value) {
a[nElems++] = value;
}
/**
* 输出容器数据
*/
public void output() {
for (int j = 0; j < nElems; j++) {
System.out.print(a[j] + " ");
}
System.out.println("");
}
/**
* 选择排序
*/
public void selectSort() {
int out, in, min;
for (out = 0; out < nElems - 1; out++) {
min = out;
for (in = out + 1; in < nElems; in++) {
if (a[in] < a[min]) {
min = in;
}
}
swap(out, min);
}
}
/**
* 交换
*
* @param in
* @param i
*/
private void swap(int one, int two) {
long temp = a[one];
a[one] = a[two];
a[two] = temp;
}
}
分享到:
相关推荐
这段代码包含了选择排序算法的核心逻辑,并且有详细的英文注释,方便初学者理解和学习。虽然选择排序的时间效率并不高,但它简洁明了,易于理解和实现,对于学习排序算法原理来说是一个很好的起点。在实际开发中,...
本主题将深入探讨Java中三种基础的排序算法:冒泡法、选择法和插入法。 1. **冒泡排序(Bubble Sort)**: 冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就...
Java汉字笔画排序是一个在中文处理领域常见的需求,特别是在数据整理、信息检索或者用户界面排序等方面。本项目提供的"java汉字笔画排序2源代码jar包"是一个优化过的解决方案,旨在减少内存占用并提高排序效率。 ...
在编程领域,排序算法是数据结构与算法学习中的重要组成部分,尤其在Java中,掌握各种排序算法对于优化程序性能至关重要。以下将详细讲解标题和描述中提到的五种排序算法:选择排序、插入排序、自顶向上合并排序、...
下面是一个Java语言实现插入排序的示例代码: ```java public class InsertionSort { public static void sort(int[] arr) { int n = arr.length; for (int i = 1; i ; i++) { int key = arr[i]; int j = i - ...
插入排序是一种基础且直观的排序算法,它的工作原理类似于我们平时整理扑克牌或者书本的方式。在实际操作中,我们通常会将一个未排序的序列想象成已经有序的部分和一个未处理的部分。每次从未处理的部分取出一个元素...
以下是对标题“各种排序的java代码归总”及描述中提到的排序算法的详细解析: 1. **冒泡排序(Bubble Sort)**: 冒泡排序是一种简单的排序算法,通过不断交换相邻的逆序元素来逐步排序。其主要步骤包括比较和交换...
### 排序算法全集锦(Java代码实现) 本文将详细介绍和分析常见的几种排序算法,并通过Java语言实现这些算法。具体包括冒泡排序、简单选择排序、直接插入排序、希尔排序、归并排序以及快速排序等。每种排序算法都将...
本文将介绍两种常见的排序算法:直接插入排序和希尔排序,并通过Java代码实现来帮助理解。 1. 直接插入排序(直接插入排序) 直接插入排序是一种简单的排序方法,它的工作原理类似于我们平时手动整理扑克牌。在排序...
在编程领域,排序算法是计算机科学中的核心概念,特别是在Java这样的高级编程语言中。...通过阅读和实践这个Java各种排序算法代码的压缩包,你可以更深入地理解这些算法的实现细节,并能够在需要时灵活应用。
本文将详细介绍几种常见的Java排序算法,并提供相应的源代码。 1. **直接插入排序(Insertion Sort)** 直接插入排序是一种简单直观的排序算法,它的工作原理类似于我们平时整理扑克牌的过程。每次取出一个元素,...
在编程领域,排序算法是数据结构与算法学习中的基础部分,它们用于整理无序的数据序列。以下是关于Java实现的七种排序算法的详细...在Java编程中,理解这些排序算法的实现和性能特点,有助于写出高效、适应性强的代码。
十大排序算法十大排序算法源码,自己整理的,可以直接运行,Java版本
直接插入排序是一种基础且简单的排序算法,它的工作原理类似于我们日常生活中的整理扑克牌。在Java中实现这个算法,我们可以从以下几个关键知识点入手: 1. **基本思想**:直接插入排序是通过构建有序序列,对于未...
本篇文章将详细探讨Java中实现插入排序、冒泡排序和选择排序的原理、代码实现及它们的时间和空间复杂度。 首先,我们来看插入排序。插入排序是一种简单直观的排序算法,它的工作原理类似于我们日常整理扑克牌的过程...
本资源提供了八种经典的排序算法的Java源代码实现,包括直接插入排序、希尔排序、简单选择排序、堆排序、冒泡排序、快速排序、归并排序和基数排序。下面将对这八大排序算法进行详细介绍。 1. **直接插入排序...
在Java中实现这些排序算法,需要理解每种算法的核心思想,并能够用面向对象的方式将其转化为代码。通过对这些算法的学习和实践,开发者可以更好地理解和优化数据处理,提升程序的运行效率。在实际应用中,通常会选择...
尽管这里提到的"树形选择排序"和"堆排序"尚未实现,但选择排序的基本思想已经在代码中体现。 最后,归并排序是一种采用分治法的排序算法。它将数组分为两半,分别对每一半进行排序,然后将两个已排序的子数组合并成...
下面,我们将详细讲解每种排序算法的工作原理,并给出Java代码实现。 1. 冒泡排序(Bubble Sort) 冒泡排序是最直观的排序算法之一,通过重复遍历待排序的数列,每次比较两个相邻的元素,如果它们的顺序错误就把...