Java教程

java入门【数组算法】6

本文主要是介绍java入门【数组算法】6,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

排序算法

  1. 选择排序法
package com.ry.sort;

import java.util.Arrays;

/*
    SelectionSort   选择排序,指定位置和其他位置比较,符合则换然后继续比较,直到最后一位
                    想法:a[0]>a[1]---->换,{7,9,4,5},a[0]=7
                         a[0]>a[2]---->换,{4,9,7,5},a[0]=4
                         a[0]>a[3]---->不换,{4, 9, 7, 5},a[0]=4,a[0]就固定了
                            
 */
public class SelectionSort {
    public static void main(String[] args) {
        int[] a = new int[]{9, 7, 4, 5};
        System.out.println("原来的:"+Arrays.toString(a));
        SelectionSort s = new SelectionSort();
        s.selectionSort(a);
        System.out.println("排序后的:"+Arrays.toString(a));
    }

    /*
        想法实现
     */
        public void selectionSort ( int[] key){
            for (int x = 0; x < key.length - 1; x++) {
                for (int y = x+1; y < key.length; y++) {
                    if (key[x] > key[y]) {
                        int temp = key[x];
                        key[x] = key[y];
                        key[y] = temp;
                    }

                }

            }
        }
    /*
        代码优化
     */
    /*
        变量交换,这也是一个算法
        原理:a实,b实,t空
             a给t,a空,
             b给a,b空
             t给b,t空
             这样就交换了
     */
    public void swap(int[] key,int x,int y){
        int t;
        t = key[x];
        key[y] = key[y];
        key[y] = t;
    }
    public void selectionSort2(int[] key){
        for (int x = 0; x < key.length-1;x++){
            for (int y = x+1; y < key.length; y++){
                if (key[x] > key[y]){
                    swap(key,x,y);
                }
            }
        }
    }
}

上一节
java入门【数组】5

这篇关于java入门【数组算法】6的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!