zoukankan      html  css  js  c++  java
  • 插入排序

    一、概念

    每次将一个待排序记录按照关键码的大小插入到一个已排好序有序序列中,直到全部记录排好序。

    二、复杂度

    排序方法 最差时间分析 最好时间分析 平均时间复杂度 空间复杂度 稳定性
    插入排序 O(n2) O(n) O(n2) O(1) 稳定

    三、代码实现

     1 package sort;
     2 
     3 import java.util.Arrays;
     4 
     5 //插入排序
     6 public class InsertSort {
     7     public void insertSort(int[] array){
     8         if(array.length == 0 || array == null)
     9             return;
    10         int currentValue = 0;//每次排序需要的值
    11         for(int currentIndex = 1; currentIndex < array.length; currentIndex++){
    12             int lastSortedIndex = currentIndex-1;//最后排好序的位置指针
    13             currentValue = array[currentIndex];
    14             for(;lastSortedIndex >= 0 && currentValue < array[lastSortedIndex];lastSortedIndex--){
    15                 array[lastSortedIndex+1] = array[lastSortedIndex];//后移
    16             }
    17             array[lastSortedIndex+1] = currentValue;
    18             printArray(array,currentIndex);
    19         }
    20     }
    21     public void printArray(int a[],int count){
    22         if(count != 0)
    23         System.out.print("第" + count + "次   ");
    24         for(int m = 0; m < a.length; m++){
    25             if(count == m && count != 0)
    26                 System.out.print("|");
    27             System.out.print(a[m] + " ");
    28         }
    29         System.out.println();
    30     }
    31     public static void main(String[] args) {
    32         int a[] = {11,7,6,1,8,4,3,2};
    33         InsertSort is = new InsertSort();
    34         is.insertSort(a);
    35         Arrays.sort(a);
    36     }
    37 }

    冒泡排序

    快速排序

    选择排序

    堆排序

    希尔排序(缩小增量排序)

    归并排序-递归实现

    基数排序

  • 相关阅读:
    优化-IO
    优化-cpu
    优化-内存
    系统优化
    snort -- 入侵检测系统
    tripwire--入侵检测系统
    sudo
    selinux
    pptpd
    C++ 内联函数
  • 原文地址:https://www.cnblogs.com/fankongkong/p/7265033.html
Copyright © 2011-2022 走看看