`

//选择排序

J# 
阅读更多
//选择排序
//原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置
//比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,
//则将其与第一位交换,使最大数置于第一位
//第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,
//则将其与第二位交换,使最大数置于第二位
//依次类推.........................................
//第i次再循环查找第i大的数并记下其位置,如果其不在数组第 i位,
//则将其与第 i位交换,使最大数置于第 i位
public class SelectSort {
public static void main(String[] args) {
  int[] a = {25,15,42,16,12,36};
  int max = 0;
  int tmp = 0;
  for(int i=0;i<a.length;i++){
   max = i;//
   /**查找第 i大的数,直到记下第 i大数的位置***/
   for(int j=i+1;j<a.length;j++){
    if(a[max]<a[j])
     max = j;//记下较大数位置,再次比较,直到最大
   }
   /***如果第 i大数的位置不在 i,则交换****/
   if(i!=max){
    tmp = a[i];
    a[i] = a[max];
    a[max] = tmp;
   }
  }
  for(int i=0;i<a.length;i++)
   System.out.print(a[i]+" ");
}
}

分享到:
评论

相关推荐

    直接插入排序/快速排序/选择排序/冒泡排序(详细实现算法和性能比较)

    数据结构---直接插入排序/快速排序/选择排序/冒泡排序(详细实现算法和性能比较)

    八种排序方法附实现源码.zip

    //选择排序 //s.InsertionSort(arr); //插入排序 //s.ShellSort(arr); //希尔排序 //s.quickSort(arr, 0, arr.length-1); //快速排序 //int[] temp = new int[arr.length]; //s.mergeSort(arr, 0, arr.length-1...

    算法设计与分析-排序算法源代码

    选择排序 冒泡排序 插入排序 合并排序 快速排序算法原理及代码实现 不同排序算法时间效率的经验分析方法 验证理论分析与经验分析的一致性 void Init_Random();//数组随机数初始化函数声明 void Show_Array();//展示...

    使用python实现常用算法,包括冒泡排序/选择排序/插入排序/归并排序/快速排序/堆排序/二分查找/并查集/最小生成树/最小路

    选择排序的基本思想是在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。...

    内部排序算法合集(插入、希尔、起泡、快速、选择、堆、归并和基数排序)

    // 选择排序 //SelectSort( a ); // 堆排序 //HeapSort( a ); // 归并排序 //MergeSort( a ); // 基数排序 { SLList b; int i; b.keynum = 3, b.recnum = LENGTH;// 对3位整数进行基数排序 for ...

    算法可视化系列——排序算法——选择排序

    **选择排序**是一种简单直观的排序算法,它的工作原理如下:首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾...

    算法设计与分析-排序算法性能分析-要求pdf 报告文档 c++源代码 preppt

    选择排序 冒泡排序 插入排序 合并排序 快速排序算法原理及代码实现 不同排序算法时间效率的经验分析方法 验证理论分析与经验分析的一致性 void Init_Random();//数组随机数初始化函数声明 void Show_Array();//展示...

    使用C语言实现选择排序算法.docx

    选择排序选择排序是一种简单的排序算法,其基本思想是在未排序序列中找到最小(或最大)元素,将其放在已排序序列的末尾,然后继续这个过程,直到整个序列排序完成。以下是使用C语言实现选择排序的简单示例:cCopy ...

    C++排序算法之选择排序源码

    ### C++选择排序算法详解 #### 一、概述 选择排序是一种简单直观的比较排序算法。它的基本思想是:在未排序序列中找到最小(或最大)元素放到已排序序列的末尾。此过程不断重复直到整个序列有序。本文将详细介绍...

    使用C语言实现选择排序算法实现.docx

    选择排序选择排序是一种简单的排序算法,其基本思想是在未排序序列中找到最小(或最大)元素,将其放在已排序序列的末尾,然后继续这个过程,直到整个序列排序完成。以下是使用C语言实现选择排序的简单示例:cCopy ...

    排序算法基础、改进综合

    排序算法基础、改进综合: ...//选择排序 //改进的选择排序 //直接插入排序 //二分插入排序 //希尔排序 //自顶向下地归并排序 //自底向上地归并排序 //堆排序 //快速排序 //改进的快速排序:三向切分快速排序

    Java实现选择排序算法(源代码)

    ### Java 实现选择排序算法详解 #### 一、选择排序的基本概念 选择排序是一种简单直观的比较排序算法,它的核心思想是在未排序的部分找到最小(或最大)的元素,然后将其移动到已排序序列的起始位置。这个过程会...

    用选择排序法对数组排序

    本文将深入探讨一种经典的排序算法——选择排序,并通过给定的C语言代码示例来详细解析其工作原理和实现过程。 ### 选择排序的基本概念 选择排序是一种简单直观的比较排序算法。其基本思想是在未排序序列中找到...

    算法设计与分析-1排序算法性能分析-冒泡/选择/插入/合并/快速排序-pre ppt

    本篇文章将详细讨论几种常见的排序算法:选择排序、冒泡排序、插入排序、合并排序以及快速排序,分析它们的算法原理、时间效率,并通过经验分析验证理论分析的准确性。 **1. 选择排序(Selection Sort)** 选择排序...

    c++语言实现排序

    这些方法包括选择排序(Selection Sort)、冒泡排序(Bubble Sort)和插入排序(Insertion Sort)等。 ##### 1. 类定义 ```cpp class sort { public: sort(); // 构造函数 virtual ~sort(); // 析构函数 inline ...

    用c++实现四种排序

    本文将详细介绍四种常见的排序算法:冒泡排序、插入排序、选择排序和快速排序,以及如何使用C++模板来实现这些排序方法,以便对不同数据类型进行排序。 首先,让我们逐一了解这四种排序算法: 1. **冒泡排序**:这...

    排序:插入排序,选择排序,基数排序,冒泡排序

    在本文中,我们将深入探讨四种经典的排序算法:插入排序、选择排序、基数排序和冒泡排序,以及它们在C++语言中的实现。 **插入排序(Insertion Sort)** 插入排序是一种简单直观的排序算法,它的工作原理类似于我们...

    冒泡选择插入快速排序的效率演示代码

    本文将对冒泡排序、选择排序、插入排序以及快速排序这四种经典的排序算法进行效率比较,并通过Java代码具体实现来直观展示它们的时间性能差异。在实际应用中,不同的排序算法适用于不同的情景,因此了解每种算法的...

    优化冒泡排序和选择排序

    冒泡排序和选择排序是两种基础的排序算法,它们在计算机科学中有着广泛的应用,尤其在教学和理解排序原理时非常关键。这两种算法虽然简单,但在特定情况下可以通过优化提高效率。 首先,我们来详细探讨冒泡排序。...

    简单内部排序实现(快速/归并/插入/希尔/冒泡/选择)

    实现了几个简单的内部排序,c++代码 包括: 快速/归并/插入/希尔/冒泡/选择

Global site tag (gtag.js) - Google Analytics