基于java实现选择排序和插入排序

选择排序

实现逻辑:

选择排序是将当前元素和剩下的元素进行比较当当前元素大于所比较的元素的时候两个元素进行交换

java 复制代码
public class Search {
//    选择排序
    private void Serach() {};
    public static <E extends Comparable <E> > void search(E[] arr) {
        for(int i =0 ; i < arr.length;i++) {
          int minxdata = i;
           for(int j = i+1;j < arr.length;j++) {
                if(arr[j].compareTo(arr[minxdata]) < 0 ) {
                   minxdata = j;
                   sawp(arr,i,minxdata);
               }
            }           
        }
    }
    private static <E> void sawp(E[] arr,int i, int j) {
        E t = arr[i];
        arr[i] = arr[j];
        arr[j] = t;
    }
}

插入排序

java 复制代码
    private AllAearch() {}
    public  static <E extends Comparable <E>> void allAearch(E[] arr) {
            for(int j = i; j-1 >= 0; j--) {
                if(arr[j].compareTo(arr[j-1]) < 0) {
                    sawp(arr,j,j-1);
                }else {
                    break;
                }
            }
//            优化
            E temp = arr[i];
            int j ;
            for( j = i ; j-1 >=0 && temp.compareTo(arr[j-1]) < 0;j--) {
                arr[j] = arr[j-1];
            };
            arr[j] = temp;
        }
    };
    private static <E> void sawp(E[] arr,int i, int j) {
        E t = arr[i];
        arr[i] = arr[j];
        arr[j] = t;
    }
相关推荐
AAA简单玩转程序设计5 分钟前
Java进阶小妙招:ArrayList和LinkedList的"相爱相杀"
java
lkbhua莱克瓦249 分钟前
集合进阶8——Stream流
java·开发语言·笔记·github·stream流·学习方法·集合
骑自行车的码农14 分钟前
🍂 React DOM树的构建原理和算法
javascript·算法·react.js
20岁30年经验的码农28 分钟前
Java Elasticsearch 实战指南
java·开发语言·elasticsearch
okseekw29 分钟前
Java 中的注释与关键字的初步学习
java
luv_sw33 分钟前
JavaSE-面向对象-构造器
java
okseekw36 分钟前
Java 中的类型转换:结合实战代码深入解析
java
CoderYanger40 分钟前
优选算法-优先级队列(堆):75.数据流中的第K大元素
java·开发语言·算法·leetcode·职场和发展·1024程序员节
希望有朝一日能如愿以偿41 分钟前
力扣每日一题:能被k整除的最小整数
数据结构·算法·leetcode
Controller-Inversion42 分钟前
力扣53最大字数组和
算法·leetcode·职场和发展