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 }
  • 相关阅读:
    search支持多种标签
    二级导航样式
    内容页与首页列表页调用点击数量
    常用标签
    20随机验证码
    19.请输入整数
    18.自定义过滤器表头排序
    17.js实现金山打字
    16.简单的自定义指令
    OC学习笔记 面向对象 继承与组合
  • 原文地址:https://www.cnblogs.com/perfy/p/3069186.html
Copyright © 2011-2022 走看看