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;
            }
        }
        
    
    }
            
            
  • 相关阅读:
    C# 使用IComparer自定义List类的排序方案
    ubuntu的vim模式
    linux系统目录结构与层级命令使用
    GitHub托管项目
    应用TortoiseGit为github账号添加SSH keys
    PHP中利用PHPMailer配合QQ邮箱实现发邮件
    QQ互联 网站应用接入
    dedecms 中变量函数
    WebSocket 协议
    前端组件库
  • 原文地址:https://www.cnblogs.com/JodyJoy1201/p/13423956.html
Copyright © 2011-2022 走看看