选择排序-java

排序-选择排序

基本思想:在待排序子表中找出最大(小)元素, 并将该元素放在子表的最前(后)面。

平均时间:O(n2)

最好情况:O(n2)

最坏情况:O(n2)

辅助空间:O(1)

稳定性:不稳定

适用场景:n比较小时

java实现:

 1      public static void selectSort(int[] list) {
 2
 3         for (int i = 0; i < list.length; i++) {
 4             int min = list[i];
 5             int minIndex = i;
 6             for (int j = i + 1; j < list.length; j++) {
 7                 if (list[j] < min) {
 8                     min = list[j];
 9                     minIndex = j;
10                 }
11             }
12             if (i != minIndex) {
13                 list[minIndex] = list[i];
14                 list[i] = min;
15             }
16         }
17     }    
时间: 2024-12-31 18:28:37

选择排序-java的相关文章

冒泡排序与简单选择排序——Java实现

1.冒泡排序 1)原理说明:重复遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成. 2)代码实现: package com.test.sort; public class BubbleSort { public static void sort(int[] data) { for (int i = 0; i < data.length; i++) { for (int j = data.length

选择排序JAVA实现

package kpp.sort; /** * 选择排序 * 从第0个元素开始,每次选择最小的元素,与当前元素交换 * 简单选择排序是不稳定的排序. 时间复杂度:T(n)=O(n^2). * @author kpp * */ public class SelectSort { public static void main(String[] args) { // TODO Auto-generated method stub int array[] = {49,38,65,97,176,213,

排序算法入门之选择排序-Java实现

本文参考http://blog.csdn.net/m0_37568091/article/details/78023705 选择排序是先从对象数组中选出最小的放在第一个位置,再从剩下的元素中选择次小的放在第二个位置,以此类推...这里以数组排序实现. public static void chooseSort(int[] a){ for(int i=0;i<a.length;i++){ //假设最小值下标是i int min=i; //依次找出最小值 for(int j=i+1;j<a.len

选择排序java语言实现

1 class demo 2 { 3 public static void main(String[] args) 4 { 5 int[] arr={1,4,2,6,8,9,0,5,3,2,2,4,4,6,7,8}; 6 for (int i=0;i<arr.length-1;i++) { 7 for (int j=i+1;j<arr.length ;j++ ) { 8 int temp; 9 if (arr[i]>arr[j]) { 10 temp=arr[i]; 11 arr[i]=

排序——选择排序(java描述)

百度百科的描述如下:选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以此类推,直到全部待排序的数据元素排完. 选择排序是不稳定的排序方法. public class Sorting { public static void main(String[] args) { int[] a = { 6, 2, 5, 3,

冒泡排序和选择排序--Java

冒泡排序(Bubble sort)和选择排序(Selection sort) 初看冒泡排序和选择排序不禁会问它们有什么区别? 的确, 它们的基本思想是一样的. 都是通过一轮的循环找到所要排序数中的最值(最大值或最小值), 然后将最值置于顶端. 它们的区别主要体现在对其他数(非最值)的处理上. 冒泡排序: 通过相邻的两个数的比较, 根据需要决定是否将两个数互换位置, 然后将比较往前(或往后)推进. 例如, 要求从小到大排序. 通过将两个数比较, 将较大的数置换到右边. 如此不断循环将得到最值. 选

3分钟理解选择排序java版

概念 选择排序(selectsorting)也是一种简单的排序方法.它的基本思想是:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以此类推,直到所有元素均排序完毕. 细节:本例中是找到最小值放到起始位置. 第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]~arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]~arr[n-1]中选取最小值,与a

选择排序 java代码

1 public class Paixu_choice { 2 int[] a=new int[] {8,5,7,9,1,6,7,4,2,6}; 3 public static void main(String[] args) { 4 Paixu_choice h=new Paixu_choice(); 5 h.go(); 6 } 7 public void go(){ 8 int out,in,min; 9 for(out=0;out<a.length-1;out++){ 10 min=out

数组排序-冒泡排序-插入排序-选择排序-Java实现

package org.lyk.entities; public class SortHelper { public static void BubbleSort(int[] array) { for(int i = array.length-1; i >= 1 ; i--) { for(int j = 0; j < i ; j++) { if(array[j] > array[j+1]) { int temp = array[j]; array[j] = array[j+1]; arr