`
leihongtai2010
  • 浏览: 14612 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

简单选择排序Java实现与分析

阅读更多
1、基本思想
  在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。

2、图示



3、Java实现
package com.leiht.sort;

/**
* 直接选择排序简单实现
 * @author Leiht
 *
 */
public class SimpleSelectSort {
	public static void main(String[] args) {
		int[] numbers = { 56, 45, 78, 67, 99, 13, 34, 49, 55, 34, 12, 77, 1 };

		System.out.println("排序之前:");
		for (int i = 0; i < numbers.length; i++) {
			System.out.print(numbers[i] + " ");
		}
		
		//执行排序算法 
		new SimpleSelectSort().sort(numbers);

		System.out.println();
		System.out.println("排序之后:");
		for (int i = 0; i < numbers.length; i++) {
			System.out.print(numbers[i] + " ");
		}
	}
	
	/**
	 * 排序方法
	 * @param numbers
	 */
	public void sort(int[] numbers) {
		//从第0个开始循环数组中第一个元素
		for(int i = 0; i < numbers.length; i++) {
			int min = numbers[i];
			int index = i;
			//从当前元素的下一个元素开始循环,选出从i到最后一个中最小的放到第i个位置
			for(int j = i + 1; j < numbers.length; j++) {
				if(numbers[j] < min) {
					min = numbers[j];
					index = j;
				}
			}
			
			numbers[index] = numbers[i];
			numbers[i] = min;
			
		}
	}
	
}


4、分析
  简单选择排序是不稳定的排序
  • 大小: 91.3 KB
分享到:
评论

相关推荐

    选择排序java 代码

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

    java实现选择排序实例

    现在,我们来看`SelectSort.java`这个文件,它应该包含了实现选择排序的Java代码。在Java中,我们可以创建一个名为`SelectSort`的类,包含一个名为`selectSort`的静态方法,该方法接受一个整数数组作为参数,并对其...

    常用排序算法分析与实现(Java版)

    用java对常用排序算法进行分析与实现.包含: 插入排序 直接插入排序、希尔排序 • 选择排序 简单选择排序、堆排序 • 交换排序 冒泡排序、快速排序 • 归并排序 • 基数排序

    快速排序、归并排序、希尔排序、冒泡排序、选择排序等8中排序方式原理分析java实现

    在Java实现这些排序算法时,我们需要理解每种排序方法的基本逻辑,并将其转化为相应的代码结构。例如,快速排序的实现通常包括`partition`函数来划分数组,以及递归调用自身来处理子数组。归并排序则需要额外的存储...

    各种排序算法比较(java实现)

    `Algorithm.java`文件可能包含了这些排序算法的Java实现代码,而`常见排序算法的实现与性能比较.doc`文档则可能详细比较了这些算法的性能和适用场景。`readme.txt`文件可能是对整个项目的简要说明,包括如何运行和...

    java实现插入排序

    在Java中实现插入排序,主要涉及数组操作和循环控制,我们可以从以下几个方面来理解这个过程。 1. **基本概念** 插入排序在实际操作中类似于打扑克牌,每拿到一张新牌(数组中的元素),就将其插入到已排序的序列...

    各种排序算法java实现

    描述中的“博文链接:https://j2ee2009.iteye.com/blog/690046”可能提供了更详细的Java实现代码和解释,包括每种排序算法的时间复杂度、空间复杂度分析,以及如何在实际问题中选择合适的排序算法。 至于标签“源码...

    Java 选择排序 算法

    以下是对Java实现选择排序算法的详细解释: 1. **算法概述** - 选择排序是一种不稳定的排序算法,它将一个列表分为已排序和未排序两部分,每次从未排序的部分选取最小值并放到已排序部分的末尾。 - 在每一轮迭代...

    七大排序算法的java实现

    选择排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置。Java实现如下: ```java void selectionSort(int[] arr) { for (int i = 0; i...

    Java语言实现六种排序算法

    Java实现冒泡排序的关键在于两个for循环,外层控制遍历次数,内层用于相邻元素的比较和交换。 2. 选择排序(Selection Sort) 选择排序每次找出未排序部分的最小(或最大)元素,然后将其与未排序部分的第一个元素...

    JAVA实现快速排序

    快速排序的Java实现可以使用递归的方式来实现,以下是一个简单的实现示例: ```java public class QuickSort { public static void sort(int a[], int low, int hight) { int i, j, index; if (low &gt; hight) { ...

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

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

    Java实现简易排序

    总之,Java实现的快速排序、插入排序和选择排序都是重要的数据结构和算法知识,它们在实际开发中有着广泛的应用。理解并能熟练运用这些排序算法,不仅能提升编程技能,也有助于解决复杂问题的能力。在学习和实践中,...

    用蛮力法实现选择排序,冒泡排序程序;用减治法实现插入排序;分治法应用-快排,合并排序,0-1背包问题;Prim算法求最小生成树。伪代码以及java代码实现

    在实验中,我们使用 Java 语言实现了选择排序、冒泡排序和插入排序的算法,并对其进行了测试。实验结果表明,蛮力法和减治法可以有效地解决排序问题,而分治法也可以用于解决复杂的算法问题。 五、结论 蛮力法、减...

    Java实现选择排序.rar

    **Java实现选择排序的步骤:** 1. 创建一个名为`selectionSort`的方法,接受一个整型数组作为参数。 2. 在方法内,用一个嵌套循环来遍历整个数组。 - 外层循环用于遍历数组中的每一个元素的位置,从0到n-1(n为数组...

    数据结构 各种排序算法 java图形界面实现与时间性能测试

    本项目主要关注各种排序算法的Java实现,并通过图形用户界面(GUI)进行演示与时间性能测试。下面将详细介绍这些排序算法及其Java实现的关键点。 1. **插入排序**: - **直接插入排序**:这是一种简单的排序方法,...

    各类排序算法java的实现

    总结:以上代码展示了Java实现的四种基本排序算法:插入排序、冒泡排序、选择排序和希尔排序。这些算法各有特点,适用于不同的场景。插入排序和冒泡排序适合于小规模或部分有序的数据,而选择排序和希尔排序则在处理...

    排序算法时间复杂度的分析java语言描述

    - 原理:选择排序是一种简单直观的排序算法,它重复地从未排序的序列中找到最小(或最大)的元素,放到已排序序列的末尾,直到全部待排序的数据元素排完。 - 时间复杂度:选择排序的时间复杂度为O(n²),其中n是待...

    排序算法的Java实现

    选择排序是一种简单直观的算法,每次找到未排序部分的最小(或最大)元素,与未排序部分的第一个元素交换。在Java中,选择排序可以实现为一个简单的循环,但其时间复杂度为O(n^2),在大数据量时效率较低。 7. **...

    <<数据结构>> 内部排序的java实现

    在提供的博客链接中,作者可能详细解释了这些内部排序算法的Java实现,并可能探讨了它们的性能分析、优化技巧以及适用场景。通过阅读这篇博客,读者可以深入理解内部排序算法的核心思想,提升自己的编程技能和算法...

Global site tag (gtag.js) - Google Analytics