选择排序算法(以升序为例),依次把数组中的第一个数与剩下没有排序的所有数进行比较。
比如第一个数为a[i],每次比较都记录下小于a[i]的下标。把最小的数放在a[i]的位置。
其交换操作次数在0和(n-1)之间,赋值操作次数在0和3(n-1)之间。
交换次数比较冒泡排序少,选择排序比较冒泡排序要快。
JAVA代码如下:
public class XuanZe {
public void sort(int[] arr){
int index;//记录当前要比较的元素下标
int temp;
System.out.println("排序前:");
for(int i = 0; i < arr.length; i++ ){
System.out.printf("%3s", arr[i]);
}
System.out.println();
System.out.println("----------------------------------");
for(int i = 0; i < arr.length; i++){
index = i;
for(int j = i + 1; j < arr.length; j++){
if(arr[j] < arr[index]){ //找到最大的元素
index = j;
}
}
//把最小交换到最前面
temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
System.out.println("第"+(i+1)+"次排序后:");
for(int k = 0; k < arr.length; k++){
System.out.printf("%3s", arr[k]);
}
System.out.println();
}
System.out.println();
System.out.println("----------------------------------");
System.out.println("完成排序后:");
for(int i = 0; i < arr.length; i++){
System.out.printf("%3s", arr[i]);
}
}
/**
* @param args
*/
public static void main(String[] args) {
int[] a = {10, 32, 1, 9, 5,3, 7, 12, 0,4,4, 3};
XuanZe xz = new XuanZe();
xz.sort(a);
}
}
分享到:
相关推荐
`Algorithm.java`文件可能包含了这些排序算法的Java实现代码,而`常见排序算法的实现与性能比较.doc`文档则可能详细比较了这些算法的性能和适用场景。`readme.txt`文件可能是对整个项目的简要说明,包括如何运行和...
Java排序算法实现 Java排序算法实现 Java排序算法实现
在编程领域,排序算法是计算机科学中的基础概念,它们用于整理数据序列,使...在实际开发中,可能会使用更高效的排序算法,如快速排序、归并排序或堆排序等,但了解并能实现选择排序对理解排序算法的工作原理至关重要。
Java实现快速排序算法+编程知识+技术开发; Java实现快速排序算法+编程知识+技术开发; Java实现快速排序算法+编程知识+技术开发; Java实现快速排序算法+编程知识+技术开发; Java实现快速排序算法+编程知识+技术...
归并排序:如何使用Java实现归并排序算法,程序详细解读; 归并排序:如何使用Java实现归并排序算法,程序详细解读; 归并排序:如何使用Java实现归并排序算法,程序详细解读; 归并排序:如何使用Java实现归并排序...
java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡
这个名为"Java各种排序算法代码.zip"的压缩包包含了一系列实现不同排序算法的Java源代码。排序算法是计算机科学中的基本概念,用于对一组数据进行排列。下面将详细讨论这些算法及其在Java中的实现。 1. 冒泡排序...
本文将深入探讨标题"常用排序算法java演示"中涉及的知识点,包括排序算法的原理、Java实现方式以及其在实际应用中的图形演示。 首先,让我们逐一了解几种常见的排序算法: 1. **冒泡排序(Bubble Sort)**:这是一...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and ...由于快速排序的常数因子较小,且在大多数情况下性能良好,因此它是实践中广泛使用的排序算法之一。
### Java 实现数据结构常见排序算法及详解 #### 排序算法概述 排序算法是计算机科学中的基础概念之一,主要用于将一系列数据按照特定规则进行排列。根据数据处理方式的不同,排序算法大致分为两大类:比较排序与非...
冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python...
Java中实现选择排序只需一个for循环来遍历未排序部分,再用一个内层循环找到最小元素并进行交换。 3. 插入排序(Insertion Sort) 插入排序的工作原理类似于我们平时玩扑克牌时的排序方式,将待排序元素逐个插入已...
以下是对Java实现选择排序算法的详细解释: 1. **算法概述** - 选择排序是一种不稳定的排序算法,它将一个列表分为已排序和未排序两部分,每次从未排序的部分选取最小值并放到已排序部分的末尾。 - 在每一轮迭代...
希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:...
在Java中实现这些排序算法,需要理解每种算法的核心思想,并能够用面向对象的方式将其转化为代码。通过对这些算法的学习和实践,开发者可以更好地理解和优化数据处理,提升程序的运行效率。在实际应用中,通常会选择...
Java中实现选择排序同样需要两层循环,一层负责外层的遍历,一层负责内层的查找与交换。 3. 插入排序(Insertion Sort) 插入排序的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到...
标题 "各种排序算法java实现" 涉及到的是计算机科学中的一个重要领域——算法,特别是排序算法在Java编程语言中的具体应用。排序算法是数据结构与算法分析中的基础部分,它们用于将一组数据按照特定顺序排列。在这个...
在实际应用中,插入排序和现则排序因为实现简单,使用的比较多,但是在对效率要求比较高、且待排序数据量大的场合,还是应该采用时间复杂度较低的排序算法,因此对排序算法进行试验比较,增强实践认识很有必要。...
在编程领域,排序算法是计算机科学中的核心概念,特别是在Java这样的高级编程语言中。本文将深入探讨Java中常见的几种排序算法,包括它们的工作原理、优缺点以及如何在实际编程中应用。 首先,我们来看`BubbleSort...