苏木三少
错的不是你,而是这个世界。

<每天一个> 算法实现之选择排序

选择排序

助我早日秃头

算法思想:

直接易懂:一共有九个数 给九个数排序(假设升序),先找到最小的一个,然后再找出倒数第二小的,然后再找出倒数第三小的,以此类推。找完这个九给数为止。

每次只找出一个数。

算法复杂度O(n²)

知识拓展:

public:
具有最大的访问权限,可以访问任何一个在classpath下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。
protected:
主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西
default:
有时候也称为friendly,它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。
private:
访问权限仅限于类的内部,是一种封装的体现,例如,大多数成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。
Comparable
是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。

用到的方法体:

实现的方法:

代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.util.Scanner;//导包
public class Selection {
    //排序算法类模板
    private static void exch(Comparable a[],int i,int j) {//交换元素位置
        Comparable t = a[i];
        a[i] = a[j];
        a[j] = t;
    }
    /*private static void show(Comparable a[]) {//本身想用它输出的但是不行
            for(int i = 0;i < a.length;i++) {
            StdOut.print(a[i]+"");
        }
        StdOut.println();
    }
    */

    private static boolean less(Comparable v,Comparable w) {//对元素进行比较
        return v.compareTo(w) < 0;
    }
    public static void sort(Comparable a[]) {
        int N =a.length;
        for(int i = 0;i < N;i++) {
            int min = i;
            for(int j = i+1;j < N;j++) {
                if(less(a[j],a[min])) //比较函数调用
                    min = j;
            }
            exch(a, i, min);//交换函数调用
        }
    }
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        String Arrays[] = new String[5];//Comparale排序接口,我们实参传递用字符串类型。
        for(int i = 0;i < 5;i++) {
            Scanner S = new Scanner(System.in);
            Arrays[i] = S.next();
        }
        sort(Arrays);//调用函数
        for(int i = 0;i < 5;i++) {//排序后输出
            System.out.print(""+Arrays[i]);
        }
    }
}

 

赞(6) 打赏
有问题的朋友随时留言,或者加我为好友。我的QQ是805375353. <<苏木三少博客 » <每天一个> 算法实现之选择排序

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

十年之约