//选择排序
//原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置
//比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,
//则将其与第一位交换,使最大数置于第一位
//第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,
//则将其与第二位交换,使最大数置于第二位
//依次类推.........................................
//第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]+" ");
}
}
分享到:
相关推荐
数据结构---直接插入排序/快速排序/选择排序/冒泡排序(详细实现算法和性能比较)
//选择排序 //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();//展示...
选择排序的基本思想是在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。...
// 选择排序 //SelectSort( a ); // 堆排序 //HeapSort( a ); // 归并排序 //MergeSort( a ); // 基数排序 { SLList b; int i; b.keynum = 3, b.recnum = LENGTH;// 对3位整数进行基数排序 for ...
**选择排序**是一种简单直观的排序算法,它的工作原理如下:首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾...
选择排序 冒泡排序 插入排序 合并排序 快速排序算法原理及代码实现 不同排序算法时间效率的经验分析方法 验证理论分析与经验分析的一致性 void Init_Random();//数组随机数初始化函数声明 void Show_Array();//展示...
选择排序选择排序是一种简单的排序算法,其基本思想是在未排序序列中找到最小(或最大)元素,将其放在已排序序列的末尾,然后继续这个过程,直到整个序列排序完成。以下是使用C语言实现选择排序的简单示例:cCopy ...
### C++选择排序算法详解 #### 一、概述 选择排序是一种简单直观的比较排序算法。它的基本思想是:在未排序序列中找到最小(或最大)元素放到已排序序列的末尾。此过程不断重复直到整个序列有序。本文将详细介绍...
选择排序选择排序是一种简单的排序算法,其基本思想是在未排序序列中找到最小(或最大)元素,将其放在已排序序列的末尾,然后继续这个过程,直到整个序列排序完成。以下是使用C语言实现选择排序的简单示例:cCopy ...
排序算法基础、改进综合: ...//选择排序 //改进的选择排序 //直接插入排序 //二分插入排序 //希尔排序 //自顶向下地归并排序 //自底向上地归并排序 //堆排序 //快速排序 //改进的快速排序:三向切分快速排序
### Java 实现选择排序算法详解 #### 一、选择排序的基本概念 选择排序是一种简单直观的比较排序算法,它的核心思想是在未排序的部分找到最小(或最大)的元素,然后将其移动到已排序序列的起始位置。这个过程会...
本文将深入探讨一种经典的排序算法——选择排序,并通过给定的C语言代码示例来详细解析其工作原理和实现过程。 ### 选择排序的基本概念 选择排序是一种简单直观的比较排序算法。其基本思想是在未排序序列中找到...
本篇文章将详细讨论几种常见的排序算法:选择排序、冒泡排序、插入排序、合并排序以及快速排序,分析它们的算法原理、时间效率,并通过经验分析验证理论分析的准确性。 **1. 选择排序(Selection Sort)** 选择排序...
这些方法包括选择排序(Selection Sort)、冒泡排序(Bubble Sort)和插入排序(Insertion Sort)等。 ##### 1. 类定义 ```cpp class sort { public: sort(); // 构造函数 virtual ~sort(); // 析构函数 inline ...
本文将详细介绍四种常见的排序算法:冒泡排序、插入排序、选择排序和快速排序,以及如何使用C++模板来实现这些排序方法,以便对不同数据类型进行排序。 首先,让我们逐一了解这四种排序算法: 1. **冒泡排序**:这...
在本文中,我们将深入探讨四种经典的排序算法:插入排序、选择排序、基数排序和冒泡排序,以及它们在C++语言中的实现。 **插入排序(Insertion Sort)** 插入排序是一种简单直观的排序算法,它的工作原理类似于我们...
本文将对冒泡排序、选择排序、插入排序以及快速排序这四种经典的排序算法进行效率比较,并通过Java代码具体实现来直观展示它们的时间性能差异。在实际应用中,不同的排序算法适用于不同的情景,因此了解每种算法的...
冒泡排序和选择排序是两种基础的排序算法,它们在计算机科学中有着广泛的应用,尤其在教学和理解排序原理时非常关键。这两种算法虽然简单,但在特定情况下可以通过优化提高效率。 首先,我们来详细探讨冒泡排序。...
实现了几个简单的内部排序,c++代码 包括: 快速/归并/插入/希尔/冒泡/选择