文档章节

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;
    }

}

 

© 著作权归作者所有

共有 人打赏支持
上一篇: bublesort
下一篇: sed学习笔记
潜水的挖掘机
粉丝 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 unsorted_area[],const int length) { int sorted_area[length]; } 我已经把形参声明为const,为什么定义数组时还是提示必须为常量值...

林威
2012/12/15
430
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

没有更多内容

加载失败,请刷新页面

加载更多

iOS个人中心渐变动画、微信对话框、标签选择器、自定义导航栏、短信验证输入框等源码

iOS精选源码 简单的个人中心页面-自定义导航栏并予以渐变动画 程序员取悦女票的正确姿势---Tip1(iOS美容篇) iOS 前台重启应用和清除角标的问题 微信原生提醒对话框3.0 JHLikeButton - 有趣...

Android爱开源
6分钟前
0
0
Yii2使用驼峰命名的形式访问控制器

yii2在使用的时候,访问控制器的时候,如果控制器的名称是驼峰命名法,那访问的url中要改成横线的形式。例如: public function actionRoomUpdate(){//}//访问的时候就要www.test.co...

dragon_tech
8分钟前
0
0
Navicat使用教程:使用Navicat Query Analyzer优化查询性能(第2部分)

下载Navicat Monitor最新版本 Navicat Monitor 是一套安全、简单而且无代理的远程服务器监控工具。它具有强大的功能使你的监控发挥最大效用。受监控的服务器包括 MySQL、MariaDB 和 Percona ...

电池盒
15分钟前
0
0
Python3 读写utf-8文本文件

with open('testRead.txt', 'r', encoding='utf-8') as f: for each_line in f: Passwith open('testWrite.txt', 'w', encoding='utf-8') as f: f.write('写入的内容'......

编程老陆
18分钟前
0
0
Linux syslog相关函数详解

介绍 syslog是Unix系统的日志系统。可以将日志记录在本地系统中。 一个完整的syslong日志包含如下信息:程序模块 | 严重性 | 时间 | 主机名 | 进程名 | 进程ID | 正文。 syslong相关函数 1....

RongJinhui0
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部