插入排序的简单实现

简介:

最简单的排序算法了,每一次j--到对应的值,不会减到0,这个纠结我好久

复制代码
 1 #include "stdafx.h"
 2 #include <iostream>
 3 #include <vector>
 4 using namespace std;
 5 
 6 template <typename Comparable>
 7 void insertionSort(vector<Comparable> & a)
 8 {
 9     int j;
10     for(int p=1 ; p<a.size() ; p++)
11     {
12         Comparable tmp = a[p];
13         for(j=p ; j>0 && tmp<a[j-1] ; j--)
14             a[j] = a[j-1];
15         a[j] = tmp;
16     }
17 }
18 int _tmain(int argc, _TCHAR* argv[])
19 {
20     vector<int> ivec;
21     ivec.push_back(34);
22     ivec.push_back(8);
23     ivec.push_back(64);
24     ivec.push_back(51);
25     ivec.push_back(32);
26     ivec.push_back(21);
27     insertionSort(ivec);
28     for(int i=0 ; i<ivec.size() ; i++)
29         cout<<ivec[i]<<endl;
30     return 0;
31 }
复制代码

执行结果:

本文转自博客园xingoo的博客,原文链接:插入排序的简单实现,如需转载请自行联系原博主。
相关文章
|
5月前
|
搜索推荐 算法 Python
不了解冒泡排序的原理?
不了解冒泡排序的原理?
40 5
|
5月前
|
搜索推荐 Java 大数据
Java实现冒泡排序
Java实现冒泡排序
43 0
|
5月前
|
搜索推荐 Java
java实现冒泡排序和快速排序代码
java实现冒泡排序和快速排序
45 1
|
存储 搜索推荐 算法
如何实现快速排序算法
快速排序(Quicksort)是一种常用的排序算法,它基于分治思想。在本文中,我们将深入探讨快速排序算法的原理和实现细节。
96 2
|
11月前
|
存储 人工智能 搜索推荐
冒泡排序:了解原理与实现
冒泡排序:了解原理与实现
72 0
|
搜索推荐
冒泡排序的原理
冒泡排序算法的原理如下: 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比比较 白话就是:比如有6个数,你需要比较5趟,这个是固定死的
239 0
|
Java
Java实现插入排序
Java实现插入排序
86 0
Java实现插入排序
|
算法 搜索推荐 Java
排序:Java实现插入排序原理及代码注释详解
排序:Java实现插入排序原理及代码注释详解
132 0
排序:Java实现插入排序原理及代码注释详解