`
you_java
  • 浏览: 96518 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java排序2(选择排序)

    博客分类:
  • java
阅读更多

 

package hello;

import java.util.Random;

/**
 * 书接上回--冒泡排序
 * 
 * 选择排序: 它改进了冒泡排序,将必要的交换次数O(N*N)减少到了O(N). 但,比较次数仍然保持为O(N*N).
 * 然而,选择排序仍然为大记录量的排序提出了一个比较重要的改进, 因为,这些大量的记录需要在内存中移动,这就使交换时间和比较时间 相比起来,交换时间更为重要.
 * (一般来说,在java语言中不是这种情况,java中只是改变了引用位置, 而实际对象的位置并没有发生改变.)
 */
public class ChooseSortApp {
	public static void main(String[] args) {
		long ls = System.currentTimeMillis();
		int maxSize = 100;
		SelectionSort arr;
		arr = new SelectionSort(maxSize);
		Random r = new Random();
		// insert 10 items
		for (int i = 0; i < 10; i++) {
			arr.insert(r.nextInt(100));
		}
		arr.display();
		arr.selectionSort();
		arr.display();
		
		System.out.println(System.currentTimeMillis()-ls);
	}
}

class SelectionSort extends BubbleSort {
	public SelectionSort(int max) {
		super(max);
	}

	/*
	 * 外层循环用循环变量out,从数组开头开始(数组下标为0)向高位增长. 内层循环用循环变量in,从out所指位置开始,同样是向右移位.
	 * 在每一个in的新位置,数据项a[in]和a[min]进行比较. 如果a[in]更小,则min被赋值为in的值.
	 * 在内层循环的最后,min指向最小的数据项,然后交换out和min指向的数组数据项
	 */
	public void selectionSort() {
		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);
		}
	}
}
分享到:
评论

相关推荐

    选择排序java 代码

    以上就是关于“选择排序java代码”的详细解析,这个简单的Java实现可以帮助初学者理解和实践选择排序算法。在实际编程中,我们通常会使用更高效的排序算法,如快速排序、归并排序或堆排序,但理解基础排序算法对提升...

    Java 选择排序 算法

    Java选择排序算法是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。这种算法对列表中的数据进行了一次完整...

    java 排序算法 选择排序,插入排序,自顶向上合并排序,合并排序,快速排序

    在编程领域,排序算法是数据结构与算法学习中的重要组成部分,尤其在Java中,掌握各种排序算法对于优化程序性能至关重要。以下将详细讲解标题和描述中提到的五种排序算法:选择排序、插入排序、自顶向上合并排序、...

    JAVA排序汇总 各种排序

    在Java编程语言中,排序是数据处理中非常基础且重要的操作。本文将全面解析Java中的各种排序算法,帮助你理解并掌握它们的核心概念、实现方式以及适用场景。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序...

    java排序.txt

    本文件主要介绍了几种常用的Java排序算法(直接插入排序、冒泡排序、选择排序),并通过示例代码展示了这些算法的基本实现。不同的排序算法有各自的优缺点,适用于不同场景下的数据处理。对于开发者而言,理解这些...

    java 选择排序法

    在Java中实现选择排序,我们通常会用到数组这一数据结构。 首先,我们要理解Java中的数组。数组是一种线性数据结构,它将相同类型的元素存储在连续的内存位置中,通过索引来访问这些元素。在Java中,声明数组时需要...

    JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序

    本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...

    java排序算法插入选择冒泡

    java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡

    java中文排序,数字字母汉字排序

    在Java编程语言中,对包含中文、数字和字母的数据进行排序是一项常见的任务。这个场景下,我们关注的是如何实现一个自定义的排序规则,按照数字、字母和汉字的顺序进行排列。以下是对这一主题的详细解释。 首先,...

    Java选择排序算法源码

    本主题将深入探讨Java实现的选择排序算法,这是一种简单直观的排序算法,适合新手学习。 选择排序(Selection Sort)的基本思想是,在未排序的序列中找到最小(或最大)的元素,放到序列的起始位置,然后再从剩余未...

    Java 排序大全排序大全

    根据给定的信息,本文将详细解释Java中几种重要的排序算法:直接插入排序、折半插入排序、Shell排序、冒泡排序、快速排序、选择排序以及堆排序。 ### 直接插入排序 直接插入排序的基本思想是:将一个记录插入到...

    JAVA排序大全 冒泡 快速 选择 归并排序

    JAVA排序大全 冒泡 快速 选择 归并排序

    java排序简单介绍

    Java排序是程序开发中常见的一种任务,主要用于对数据集合进行有序排列。在Java中,有多种内置和自定义的排序算法可供选择,每种都有其特定的适用场景和性能特点。下面将详细介绍几种常见的Java排序方法。 1. **...

    java实现选择排序实例

    在本文中,我们将深入探讨Java编程语言中的选择排序算法,并通过一个实际的示例来解释其工作原理。选择排序是一种简单直观的排序算法,它的基本思想是每一轮找到待排序序列中的最小(或最大)元素,然后将其放到正确...

    java排序大全(含各种排序算法)

    Java排序算法是编程中基础且重要的概念,它们用于组织数组或列表中的元素,使其按照特定顺序排列。在本文中,我们将探讨几种常见的排序算法的Java实现,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、...

    Java排序(带图形界面)

    执行语句:java sort &lt;输入方式&gt; &lt;图形界面/非图形界面选择&gt; &lt;待排序数列&gt; 例: java sort 0 643 323 12 3 523 23 //命令行输入数据并排序 java sort 1 1 //非图形界面下手动输入数据并排序 java sort 1 2 //手动...

    java 中文姓氏 排序

    ### Java 中文姓氏排序详解 #### 一、引言 在处理中文数据时,我们经常需要对含有中文姓名的数据进行排序。Java 提供了多种方式进行排序,包括使用 `Collections.sort()` 方法配合自定义比较器(`Comparator`)。...

    java排序可视化页面

    Java排序可视化页面是一种用于教学和理解排序算法的强大工具。它通过图形化的方式展示了排序过程,使得用户能够直观地看到冒泡排序、选择排序和插入排序这三种基础排序算法的工作原理。接下来,我们将深入探讨这些...

Global site tag (gtag.js) - Google Analytics