zoukankan      html  css  js  c++  java
  • 基础算法1——插入排序和希尔排序

    View Code
     1 //升序
     2 public class MyInsertSort {
     3     // 直接插入排序
     4     public void StraightInsertionSort(double[] sorted) {
     5         int i, j;
     6         for (i = 2; i < sorted.length; i++) {
     7             if (sorted[i] < sorted[i - 1]) {
     8                 sorted[0] = sorted[i];// 设一监视哨
     9                 sorted[i] = sorted[i - 1];
    10                 for (j = i - 2; sorted[j] > sorted[0]; j--) {// 所有大于监视哨值后移
    11                     sorted[j + 1] = sorted[j];
    12                 }
    13                 sorted[j + 1] = sorted[0];
    14             }
    15         }
    16     }
    17 
    18     // 希尔排序
    19     public void ShellSort(double[] sorted) {
    20         int incr[] = { 7, 5, 3, 1 };
    21         for (int i = 0; i < incr.length; i++) {
    22             ShellInsertSort(sorted, incr[i]);
    23         }
    24     }
    25 
    26     public void ShellInsertSort(double[] sorted, int incr) {
    27         // TODO Auto-generated method stub
    28         int i1, j1;
    29         for (i1 = 1 + incr; i1 < sorted.length; i1++) {
    30             if (sorted[i1] < sorted[i1 - incr]) {
    31                 sorted[0] = sorted[i1];
    32                 for (j1 = i1 - incr; (sorted[j1] > sorted[0]) && j1 > 0; j1--) {
    33                     sorted[j1 + incr] = sorted[j1];
    34                 }
    35                 sorted[j1 + incr] = sorted[0];
    36             }
    37         }
    38     }
    39     
    40 }
  • 相关阅读:
    thrift python安装
    第二周习题F
    Equivalent Strings
    生成可重集的排列(方法)
    分数拆分(刘汝佳紫书P183)
    Prime ring problem
    Maximun product
    Division
    每周一赛(E题,广搜求方案)
    ICE CAVE(BFS搜索(模拟))
  • 原文地址:https://www.cnblogs.com/perfy/p/3069186.html
Copyright © 2011-2022 走看看