`

排序系列(八)--选择排序

阅读更多

public class SelectSort {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] array=new int[]{10,30,20,4,9,-1,6,15};
		
		for(int j=0;j<array.length-1;j++){
			int point=j;
			for(int i=j+1;i<array.length;i++){
				if(array[i]>array[point]) {
					point=i;
				}	
			}
			int tmp=array[point];
			array[point]=array[j];
			array[j]=tmp;
		}
		
		for(int i=0;i<array.length;i++){
			System.out.print(array[i] + " ");
		}
	}

}
 算法复杂度:O(n*n),算法不稳定
分享到:
评论

相关推荐

    选择排序-插入排序-快速排序-冒泡排序

    在计算机科学领域,排序算法是数据结构中至关重要的一部分,它涉及到如何有效地组织和排列一系列元素。本主题将详细探讨四种常见的排序算法:选择排序、插入排序、快速排序以及冒泡排序,它们都是用C语言实现的。...

    冒泡排序-排序过程 冒泡排序-排序过程

    冒泡排序的过程可以形象地比喻为一系列有重量的气泡,根据轻气泡不能位于重气泡之下的原则进行排序。具体来说: 1. **初始化**:首先设定一个标志 `NoSwap` 为 `True`,表示在当前遍历过程中尚未发生过元素交换。 2...

    C语言版的排序方法---希尔排序.docx

    希尔排序的核心思想是“增量序列”,即在排序过程中,通过一系列间隔逐步缩小的步长对数组进行插入排序,直到步长为1,即所有元素都在同一个组内,完成最终排序。 在给出的代码中,希尔排序的实现分为两个主要函数...

    C经典算法之排序法 - 改良的选择排序

    ### C经典算法之排序法 - 改良的选择排序 #### 概述 选择排序是一种简单直观的比较排序算法。它的基本思想是:遍历数组,每次从未排序的部分找到最小(或最大)元素,并将它放到已排序部分的末尾。在最坏的情况下,...

    C语言版的排序方法---堆排序.docx

    堆排序是一种基于比较的排序算法,它通过构建和维护一个最大堆或最小堆来实现排序。在C语言中,我们可以自定义函数来实现这个过程。下面是对标题和描述中涉及的堆排序知识点的详细说明: 1. **最大堆**:在堆排序中...

    冒泡排序-14-表单提交.ev4.rar

    在这个"冒泡排序-14-表单提交.ev4.rar"压缩包中,很可能包含了一个关于冒泡排序的示例讲解,可能是一个教学视频"冒泡排序-14-表单提交.ev4.mp4"。 冒泡排序的基本思想是通过重复遍历待排序的数列,一次比较两个元素...

    第3课 桶排序.pdf--

    在C++编程中,桶排序能够高效地对一系列元素进行排序。根据提供的文件内容,我们可以总结以下知识点: 1. **桶排序的基本原理**:桶排序是通过将一个数组分成多个小桶(桶的数量一般等于数组的最大值加一),然后将...

    TIA博途-冒泡排序SCL算法-全局FC库文件-V15版本.zip

    SCL(Structured Control Language)是TIA博途中用于SIMATIC S7-1200/1500系列PLC的编程语言,它的语法结构清晰,适合编写复杂的程序逻辑。在SCL中实现冒泡排序,我们需要创建一个函数块(FB),这个FB可以作为全局...

    归并排序,排序等算法,数据结构,快速排序,链表排序

    在计算机科学领域,排序算法是数据处理中至关重要的一部分,它涉及到如何有效地组织和排列一系列元素。本主题将深入探讨四种常见的排序算法:归并排序、快速排序以及与链表相关的排序方法。 首先,我们来讨论归并...

    白话经典算法系列之六 快速排序 快速搞定 - MoreWindows - 博客园1

    快速排序是一种高效的排序算法,由C.R.A.Hoare在1962年提出。它基于分治策略,但其完整流程可以更准确地描述为“挖坑填数+分治法”。快速排序的核心思想是通过选取一个基准数,将数组分为两部分:一部分的所有元素都...

    兰州大学数据结构实验全集 数据结构 链表 约瑟夫问题 KMP 模式匹配 二叉排序树 llink-rlink 关键路径 堆排序

    6. **关键路径**:在项目管理中,关键路径是指决定项目最早完成时间的一系列任务,这些任务的总时差为零。理解关键路径有助于确定哪些任务延误会影响项目的整体进度,并帮助优化资源分配。 7. **堆排序**:堆排序是...

    数据结构-选择排序-C.ppt

    《数据结构-选择排序-C.ppt》文档详细介绍了选择排序这一内部排序方法,包括它的基本思想、算法描述以及算法分析。选择排序的核心在于通过一系列的比较找到数组中最小(或最大)的元素,并将其放到正确的位置,从而...

    SPT-08-排序-交换和选择.pdf

    排序是计算机科学中的一项基本操作,目的是将一系列元素按照一定的顺序(通常是数值或字典顺序)重新排列。排序算法可以根据不同的标准进行分类,常见的分类方法包括内部排序和外部排序、按排序原则分类以及按排序所...

    各种经典排序算法小结---必知必会

    排序算法是计算机科学中的一个重要组成部分,主要用于将一系列数据按照特定顺序(升序或降序)进行排列。排序算法的学习对于理解算法复杂度、算法设计原理以及提高编程能力等方面都具有重要意义。本文将对几种经典的...

    插入排序冒泡排序堆排序基数排序选择排序快速排序源码

    在编程领域,排序算法是数据结构与算法学习中的基础部分,它们用于对一系列数值进行排列。以下是关于标题和描述中提到的几种排序算法的详细解释,以及它们在Java中的实现。 1. 插入排序(Insertion Sort): 插入...

    数据结构与排序算法------通过代码示例,讲解:数据结构和9种排序算法。.zip

    算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...

    NSGA-II非支配排序算法

    - **选择**:NSGA-II采用快速非支配排序选择(Roulette Wheel Selection)和精英保留策略,确保最优解不会在进化过程中丢失。 - **交叉**:通常采用单点或多点交叉策略,交换两个父代个体的部分基因以产生子代。 ...

    基于灰理论的灰关联排序---matlab程序

    函数内部可能包含了一系列的矩阵操作,如元素级运算、向量归一化和排序等。 在实际应用中,基于灰关联排序的MATLAB程序可以广泛应用于多个领域,例如: - 工业质量控制:通过分析生产过程中的不同参数,找出对产品...

    单链表上的简单选择排序算法

    简单选择排序是一种基础且直观的排序算法,虽然效率较低,但对理解排序原理非常有帮助。当我们需要在单链表这种非数组结构上进行排序时,需要对基本的简单选择排序算法进行一些调整。接下来,我们将详细探讨如何在...

    S7-200SMART冒泡排序-优化版(可选择升序降序及数据类型等).zip

    在工业自动化领域,西门子S7-200SMART系列PLC因其小巧、灵活、功能强大而广泛应用于各种控制系统中。本篇文章将深入探讨如何在S7-200SMART PLC上实现冒泡排序算法,并针对其进行优化,同时支持用户自定义升序或降序...

Global site tag (gtag.js) - Google Analytics