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;
            }
        }
        
    
    }
            
            
  • 相关阅读:
    yii 引入文件
    CodeForces 621C Wet Shark and Flowers
    面试题题解
    POJ 2251 Dungeon Master
    HDU 5935 Car(模拟)
    HDU 5938 Four Operations(暴力枚举)
    CodeForces 722C Destroying Array(并查集)
    HDU 5547 Sudoku(dfs)
    HDU 5583 Kingdom of Black and White(模拟)
    HDU 5512 Pagodas(等差数列)
  • 原文地址:https://www.cnblogs.com/JodyJoy1201/p/13423956.html
Copyright © 2011-2022 走看看