zoukankan      html  css  js  c++  java
  • 【Java学习日记】编程题整理-8.02 选择排序和插入排序

     选择排序:算法的思想就是把第i个数从头开始往后比较,找到小的就交换位置。直到每个数都和之后的元素比较完。

    import java.lang.reflect.Array;
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class MyTest {
        public static void main(String[] args) {
            //选择排序
            Scanner input = new Scanner(System.in);
            int[]list = {3,7,8,2,5,7,6,5,5};
            SelecttheSmallest(list);
            System.out.println(Arrays.toString(list));
        }
        
        public static void SelecttheSmallest(int[] list) {
            for(int i=0;i<list.length-1;i++) {
                int currentMin=list[i];
                int currentIndex=i;
                
                for(int j =i+1;j<list.length;j++) {
                    if(currentMin>list[j]) {        //保存最小值到临时最小值
                        currentMin = list[j];
                        currentIndex =j;
                    }
                }
                
                if(currentIndex != i) {        //如果下标改变了,交换currentMin和list[i]
                    list[currentIndex] =list[i];    //这里的list[current]相当于list[j],交换i和j
                    list[i] = currentMin;        //把j的值赋予i,保持i依然是最小值
                }
            }
        }
        
    
    }
            
            



     插入排序:其思想就是把后一个元素跟前一个元素比较,如果如果比前一个数大就继续,如果小就让前一个元素往后挪位置。

    import java.lang.reflect.Array;
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class MyTest {
        public static void main(String[] args) {
            //插入排序
            Scanner input = new Scanner(System.in);
            int[]list = {3,7,8,2,5,7,6,5,5};
            Insertsort(list);
            System.out.println(Arrays.toString(list));
        }
        
        public static void Insertsort(int[] list) {
            for(int i =1; i<list.length;i++) {
                int currentElement = list[i];
                int k;
                for(k = i-1;k>=0 && list[k]>currentElement;k--) {
                    list[k+1] = list[k];
                }
                list[k+1] = currentElement;
            }
        }
        
    
    }
            
            
  • 相关阅读:
    java中Annotation注解的定义与使用
    ABC184 D——F && 一道LC好题
    YZYのPython 作业~
    杂谈(11.13——lca && mst)
    树状数组(BIT)—— 一篇就够了
    Codeforces Round #673 (Div. 2)[A-E]
    Codeforces Round #674 (Div. 3)
    Educational Codeforces Round 95 (Rated for Div. 2) [A -- E]
    LEETCODE 第 205 场周赛
    Codeforces Round #662 (Div. 2)
  • 原文地址:https://www.cnblogs.com/JodyJoy1201/p/13423956.html
Copyright © 2011-2022 走看看