文档章节

insertionsort

潜水的挖掘机
 潜水的挖掘机
发布于 2017/02/28 12:59
字数 131
阅读 11
收藏 0
//insertion sort 1
template<typename T>
void insertionsort_1(T arr[],int len)
{
    for(int i=1;i<len;++i)
    {
        for(int j=i;j>0;--j)
        {
            if(arr[j-1]>arr[j])
                swap(arr[j-1],arr[j]);//一次比较过程带来额外的三次赋值,待优化。
            else
                break;
        }
    }

}

//insertion sort 2
template<typename T>
void insertionsort_2(T arr[],int len)
{
    for(int i=1;i<len;++i)
    {
        T e=arr[i];
        int j=i;
        //向前寻找元素e的插入位置,若不满足条件,则将前面的元素向后摞。
        for(;j>0&&arr[j-1]>e;--j)
        {
            arr[j]=arr[j-1];
        }
        arr[j]=e;
    }

}

 

© 著作权归作者所有

共有 人打赏支持
潜水的挖掘机
粉丝 0
博文 13
码字总数 3204
作品 0
运维
基本数据结构之Sort

问题描述: BubbleSort InsertionSort ShellSort MergeSort HeapSort QuickSort 问题分析: 时间复杂度? 空间复杂度? 代码实现: public class BubbleSort { public static <AnyType extends......

关西大汉弹琵琶
2015/10/25
148
0
我已经把形参声明为const,为什么定义数组时还是提示必须为常量值

如下: void InsertionSort::TaDirectInsertionSort(int unsortedarea[],const int length) { int sortedarea[length]; } 我已经把形参声明为const,为什么定义数组时还是提示必须为常量值...

林威
2012/12/15
420
2
插入排序 InsertionSort

#include <stdio.h> include <string.h> include <stdlib.h> void insertionSort(void base, sizet nmeb, sizet size, int(compar)(const void , const void *)); void swap(void p1, void p......

COSE
2014/04/08
0
0
选择、冒泡和插入排序

1、选择排序 public static void selectSort(int[] a) { for(int i=0;i<a.length-1;i++) { for(int j=i+1;j<a.length;j++) { if(a[i] < a[j]) { int temp = a[i]; a[i] = a[j]; a[j] = temp......

无异常-陌生
2014/03/12
68
0
算法分析(2)经典排序算法对比

[TOC] 概述 上一篇文章分析了一下基本的排序算法以及Java的实现,不过没有比较深入的去分析,因为对于O(n^2)的算法实现比较简单,但是对于O(nLogn)的算法本身有些复杂,所以就分为两篇文章来...

wustor
2017/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一次由HandlerInterceptor进行的深入思考

HandlerInterceptor 是SpringFramework为我们提供的拦截器,一般我们可以用来鉴权或者日志记录等。 它是一个interface,主要方法有: /** * Intercept the execution of a handler. Called...

kipeng300
33分钟前
1
0
cmd中查询mysql表出现中文乱码

问题:在pycharm中正常的fetchall拉取数据,能够正常显示,而在cmd中直接select却出现中文乱码。 解决思路:右键查看cmd命令窗口属性得到,cmd窗口默认编码是gbk(如下图所示),而设置的mys...

fang_faye
59分钟前
2
0
centOS 安装Python3与python2并存

centOS 安装Python3与python2并存 如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环...

MedivhXu
今天
2
0
Spring JdbcTemplate模板模式与回调结合分析

在看Spring的JdbcTemplate的时候,看到其将模板模式和回调模式结合使用的实现,可以精妙的解决很多的问题。详见Spring中涉及的设计模式总结中的关于模板模式和回调模式结合的具分析,本文利用...

宸明
今天
1
0
docker update:更新一个或多个容器的配置

更新容器的配置 docker update:更新一个或多个容器的配置。 具体内容请访问:https://docs.docker.com/engine/reference/commandline/update/#options 语法:docker update [OPTIONS] CONTA...

lwenhao
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部