简单插入排序(C++版)

#include <iostream>

using namespace std;

/** \ Insert Sort
 *
 *  Key:
 *  * reserve: tm = a[i]
 *  * position: int j = i-1
 *  * move : while
 *
 */

template <typename T>
void insertSort(T a[], int n) {
    T tm;
    for (int i = 1; i < n; i++) {
        tm = a[i];
        int j = i-1;
        while (a[j] > tm && j >= 0){
            a[j+1] = a[j];
            j--;
        }
        a[j+1]=tm;
    }
}
时间: 2024-10-10 02:12:00

简单插入排序(C++版)的相关文章

分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业不是百度来的,我只是百度了一些示例代码的意思,怎么用!算了,越解释万一越黑呢!哈哈O(∩_∩)O哈哈~) ----------------------------------------------------------------分界线------------------------------

排序(2)---------简单插入排序(C语言实现)

插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间. 通俗解释: ①假设初始序列的第一个元素是有序的(当一个序列只有1个元素时,我们可以认为其是有序的). ②从第二个元素开始与前面的元素进行比较,如果比前面的大

简单插入排序和希尔排序(原理和C语言实现)

简单插入排序的原理很简单: 所谓插入排序,就是将新加入的数据插入到一个有序数组中,并且保证插入后有序.这就要求要找到插入的位置. (图片来自维基百科) 对于一个已经存在的数组(乱序),要将其有序排列(这里取从小到大),就可以按照下面的步骤: 1.先假定一个有序数组,这个数组只有一个元素,就是第一个元素,它一定是有序的; 2.我们从第二个数(下标为1)开始向后遍历数组; for(insert_index=1; insert_index < arr_len; insert_index++){ } 3

一个简单缩略版的python 线程池实现

1 #-*-coding:utf-8-*-2 2 3 import threading 4 import queue 5 import itertools 6 import os 7 import time 8 9 10 RUN = 0 11 CLOSE = 1 12 TERMINATE = 2 13 job_counter = itertools.count() 14 15 16 class Pool(object): 17 18 def __init__(self, max_thread_n

简单插入排序的实现

简单插入排序属于比较简单的排序算法,实现原理自行谷歌一下,下面给出具体代码. #include<iostream> using namespace std; void insertsort(int a[],int n) { int i,j; for(i = 1;i < n;i ++ ) { int tmp = a[i]; for(j = i;j > 0 && tmp < a[j-1];j --) a[j] = a[j-1]; a[j] = tmp; } } i

(简单母函数进阶版,暴力)hdu 2069 Coin Change

Coin Change Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 14857    Accepted Submission(s): 5024 Problem Description Suppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and

IOS 实现3D Touch在tableView的简单应用(swift版)

之前记录过OC版实现3D Touch功能的小小演示,最近无事整整swift,也弄个swift版的3D Touoch... 上代码. 一.3D Touch重按主屏icon出现快捷标签有两种添加方式: 1.静态添加,在工程中的info.plist文件中添加,这种方式添加的标签安装后就能显示 2.动态添加,通过代码动态添加快速入口.这种方式添加的标签,必须先运行一次App才会出现. func application(application: UIApplication, didFinishLaunch

openstack架构简单介绍J版(更新中)

title : OPENSTACK架构简单介绍 openstack的发展及历史 openstack是什么? OpenStack是一个美国国家航空航天局和Rackspace合作研发的云端运算?软件,以Apache许可证授权.而且是一个自由软件和开放源码项目. 通俗点来讲,openstack就是一个用python编写的linux软件,openstack是一个开源云平台. openstack能干嘛? openstack最基础的功能就是产生云主机(vm虚拟机).用这些虚拟机能够做你想做的非常多事.比如产

别怕excel vba其实很简单(第2版)pdf

下载地址:网盘下载 内容简介  · · · · · · 对于大部分没有编程基础的职场人士来说,在学习VBA时往往会有很大的畏难情绪.本书正是针对这样的人群,用浅显易懂的语言和生动形象的比喻,并配合大量插画,对Excel中看似复杂的概念和代码,从简单的宏录制.VBA编程环境和基础语法的介绍,到常用对象的操作与控制.执行程序的自动开关-对象的事件.设计自定义的操作界面.调试与优化编写的代码,都进行了形象的介绍. 本书适合那些希望提高工作效率的职场人士,特别是经常需要处理和分析大量数据的用户,也适合财