排序算法3--插入排序

原创 2007年09月15日 15:26:00
 
template <class T>
void insertion_sort(T *Array, int Size, bool Ascending = true)
{
    assert(Array 
!= NULL);
    assert(Size 
>= 2);
    
    
int i, temp;

    
if (Ascending)
    
{
        
for (i = 1; i < Size; i++)
        
{
            temp 
= Array[i];
            
while (temp < Array[i-1&& i > 0)
            
{
                Array[i] 
= Array[i-1];
                i
--;
            }

            Array[i] 
= temp;
        }

    }

    
else
    
{
        
for (i = 1; i < Size; i++)
        
{
            temp 
= Array[i];
            
while (temp > Array[i-1&& i > 0)
            
{
                Array[i] 
= Array[i-1];
                i
--;
            }

            Array[i] 
= temp;
        }

    }

}

相关文章推荐

菜鸟学算法之--插入排序

欢迎转载,转载时请注明出处和作者联系方式文章出处:http://blog.csdn.net/shaojieli作者联系方式:李少杰  一、排序原理1.)将数据的第一个元素做为已排序集合。2.)第轮在未...

排序算法3——直接插入排序

直接插入排序的平均复杂度是 \(O(n^2)\),因此应用场景较少。直接插入排序的思路是: 每次处理一个数据,将其插入到一个已经排好序的子序列中,直到数据处理完毕。下面给出一个动画示例:未完待续。。...
  • shuzfan
  • shuzfan
  • 2017年02月07日 23:50
  • 377

常用排序算法总结3一一插入排序

定义 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常...

排序算法3——插入排序

选择排序(Selection Sort)通过多次比较和交换来实现排序,其排序流程如下: 1.选取数组中最小的一个元素和数组的第一个元素交换。 2.接着从剩下的所有元素中选择最小的与第二个元素交换。...
  • xchl123
  • xchl123
  • 2014年05月02日 19:51
  • 430

插入排序(排序算法的入门方法)

  • 2012年03月17日 10:56
  • 10.39MB
  • 下载

排序算法-插入排序

  • 2012年07月18日 15:31
  • 585B
  • 下载

数据结构学习系类列十一-插入排序

选择排序可以分为三种:(1)直接插入排序(2)二分法插入排序(3)希尔排序直接插入排序:/* 时间效率为 O(n^2),对于小数组,插入排序简单易行,对于大数组效率过低,不宜采用。 */ #in...

数据结构学习笔记(九)-各大排序算法

一、简单排序1. 冒泡排序其思想是每次比较相邻的两个元素,如果后一个比它小则交换两个元素的顺序,直到将最大的数冒出来(假设是从小到大排)。那么我们需要进行N-1趟排序,每次最坏的情况交换N-1次,则时...

C / C++算法学习笔记(1)-快速排序算法

本文原始地址:C / C++算法学习笔记(1)-快速排序算法   算法思想: 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。   关于分治法 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:排序算法3--插入排序
举报原因:
原因补充:

(最多只允许输入30个字)