(2)排序算法——插入排序
来源:互联网 发布:手机屏幕色彩校正软件 编辑:程序博客网 时间:2024/05/24 05:58
插入排序算法是在已排好序的子数组中反复插入一个新元素,直到整个数组全部排好序。其时间复杂度为O(n*n).
import java.util.ArrayList;import java.util.List;public class InsertSort { /**对整型数组进行插入排序**/ public static void sort(int[] list){ int listLen=list.length; for(int i=1;i<listLen;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; } } /**对Comparable基本Number包装类型数组进行选择排序 * 利用泛型方法,通过先找出最大数来实现,将最大数放在后面**/ public static <E extends Comparable<E>> void sort(E[] list) { for (int i = 1; i < list.length; i++) { /** insert list[i] into a sorted sublist list[0..i-1] so that list[0..i] is sorted. */ E currentElement = list[i]; int k; for (k = i - 1; k >= 0 && list[k].compareTo(currentElement) > 0; k--) { list[k + 1] = list[k]; } // Insert the current element into list[k+1] list[k + 1] = currentElement; } } /**对List进行插入排序**/ public static <E extends Comparable<E>> void sort(List<E> list) { int listLen=list.size(); for (int i = 1; i < listLen; i++) { E currentElement = list.get(i); int k = 0; for (k = i - 1; k >= 0 && list.get(k).compareTo(currentElement) > 0; k--) { list.set(k+1,list.get(k)); } list.set(k+1,currentElement); } } /**主函数测试**/ public static void main(String[] args){ Integer[] array={1,45,2,5,546,34}; List<Integer> list=new ArrayList(); for(int i: array){ list.add(i); } sort(list); System.out.println(list); sort(array); print(array); } /**打印数组**/ public static void print(Comparable[] list){ for(int i=0;i<list.length;i++){ System.out.print(list[i]+" "); } System.out.println(); }}
0 0
- 排序算法——插入排序(直接插入排序、折半插入排序、希尔排序)
- 排序—插入排序算法
- 排序算法—插入排序
- (2)排序算法——插入排序
- java排序算法(2)—插入排序
- 《排序算法》——归并排序,插入排序(Java)
- 排序算法Java——插入排序(希尔排序)
- Java排序算法总结之(一)——插入排序(直接插入排序、折半插入排序、希尔排序)
- 【算法】排序算法(二)——插入排序
- 数据结构&算法实践—【排序|插入排序】插入排序
- 排序算法—插入排序之直接插入排序
- 排序算法1—插入排序、选择排序、冒泡排序
- 排序算法——插入排序
- 排序算法——二分插入排序
- 排序算法之一——插入排序
- 排序算法——插入排序
- 排序算法——插入排序
- 排序算法总结——插入排序
- iOS基础之文件读写
- {小结}USACO NOV06
- HTTP 网络请求一般格式 YUQNetwork
- java第五节-类,对象,构造方法,静态-static,封装
- 用PriorityQueue解决选择最小的K个数问题
- (2)排序算法——插入排序
- 计算机网络-TCP/IP协议相关知识点
- 第36讲项目5——有多少符号
- ZOJ 3620 Escape Time II【dfs】
- 关于FMDB的基本使用
- 11.投票系统(3)
- Linux多线程编程小结
- Java中,如何调用“其他类的方法中生成的实例化的对象”的属性?
- 安装POSTMAN插件