美文网首页程序员
选择排序(JAVA)

选择排序(JAVA)

作者: 林天涯 | 来源:发表于2018-01-02 19:54 被阅读0次

算法


  选择排序与冒泡排序一样都是最朴素简单而又经典的排序算法,效率相对快速排序、堆排序等较低。其思路是,一共进行n-1趟排序,每次筛选出最大(降序)或者最小(升序)的元素,将该元素与位置为i的元素进行交换(i表示趟数),当第n-1趟结束时,排序完成。由n-1趟,每趟比较n-i次,容易得出其时间复杂度为o(n*n),效率确实比较低下。

Codes


package com.fairy.InnerSort;

import java.util.Scanner;
/**
 * 选择排序
 * @author Fairy2016
 *
 */
public class SelectSort {
    
    public static void sort(int a[], int n) {
        int min;//记录每趟查找的最小元素位置
        for(int i = 1; i <= n-1; i++) {
            min = i;
            //寻找第i趟的最小元素
            for(int j = i+1; j <= n; j++) {
                if(a[min] > a[j]) {
                    min = j;
                }
            }
            //交换a[min]与a[i],完成一趟排序
            a[0] = a[min];
            a[min] = a[i];
            a[i] = a[0];
        }
    }

    public static void Print(int a[], int n) {
        for(int i = 1; i <= n; i++) {
            System.out.print(a[i]+" ");
        }
    }

    public static void main(String args[]) {
        int n;
        int a[];
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()) {
            n = scanner.nextInt();
            if(n > 0) {
                a = new int[n+1];
                for(int i=1; i <= n; i++) {
                    a[i] = scanner.nextInt();
                }
                sort(a, n);
                Print(a, n);
            }
        }
        scanner.close();
    }
}

相关文章

  • 冒泡排序 选择排序

    冒泡排序 java 实现 C 实现 选择排序 java 实现 C 实现

  • (306)排序-java实现的选择/插入/希尔排序

    引言 用java实现的选择排序、插入排序、希尔排序。 代码(java) 运行结果

  • 数据结构之排序

    选择排序1.直接选择排序 原理直接选择排序过程直接选择排序过程 实现: DataWrap.java来模拟待排序的数...

  • java快速学习排序---选择排序

    1.java实现选择排序 (1)、图解选择排序 (2)、选择排序的思想 选择排序首先在未排序序列中找到最小(大)元...

  • 面试知识点

    排序冒泡排序快速排序选择排序插入排序二路归并 查找二分查找 排序和查找的java实现 java语言Java字符串字...

  • java 实现排序算法之「选择排序」

    java 实现排序算法系列 继冒泡排序算法之后,选择排序终于和大家见面了。为什么冒泡排序之后要说选择排序呢,是因为...

  • 排序算法

    常见排序算法及JAVA实现 简单选择排序(SelectSort) 选择排序思想很简单,对所有元素进行遍历,选出最小...

  • java排序(选择排序)

    选择排序 思路 思路:数组中得到最大的值,放在数组的最后一位,再次循环得到数组中最大的值(不算上一次的),放在数组...

  • 排序算法Java实现

    本文会通过Java语言实现:冒泡排序,插入排序,选择排序,归并排序,快速排序,桶排序,计数排序,基数排序,希尔排序...

  • Java基础01 冒泡排序

    冒泡排序 Java中有很多种排序:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、...

网友评论

    本文标题:选择排序(JAVA)

    本文链接:https://www.haomeiwen.com/subject/szmqnxtx.html