插入排序的实现
来源:互联网 发布:岛崎遥香握手数据切 编辑:程序博客网 时间:2024/04/29 09:03
插入排序的思想是增量法,它每一次都将一个待排序的元素插入到已经排序好的局部列表(数组)中。我们在玩牌时,就用到了插入排序。插入排序算法的伪代码如下:
测试程序如下:
InsertionSort( A )for i<- 2 to A.length do key <- A[ i ] j <- i - 1 while j>0 and A[ j ] > key do A[ j+1 ] = A[ j ] i <- i - 1 A[ j+1 ] = key
用C++实现如下:
InsertionSort(int a[],int length) { for(i=1;i<length;<i++) { int key=a[i]; int j=i-1; while((j>=0)&&key>a[j]) { a[j+1]=a[j]; j--; } a[j+1]=key; } }函数中的两个参数,第一个是数组的名字,第二个是数组的长度。实现的是对整型数组排序,当然也可以采用C++中的函数模板,使其可以对任何类型都可以排序。如下;
template <class elemType> void InsertionSort(elemType a[],int length) { for(int i=1;i<length;i++) { elemType key = a[i]; int j = i-1; while( (j>=0)&&(a[j]>key) ) { a[j+1] = a[j]; j--; } a[j+1] = key; } }
测试程序如下:
#include <iostream> #include <string> using namespace std; template <class elemType> void InsertionSort(elemType a[],int length) { for(int i=1;i<length;i++) { elemType key = a[i]; int j = i-1; while( (j>=0)&&(a[j]>key) ) { a[j+1] = a[j]; j--; } a[j+1] = key; } } int main() { int a[10] = {10,9,8,7,6,5,4,3,2,1}; InsertionSort(a,10); for(int loop=0;loop<10;loop++) { cout<<a[loop]<<endl; } return 0; }插入排序的时间消耗为O(n^2)。
0 0
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- perl实现的插入排序
- 插入排序的快捷实现
- 数据结构 插入排序的实现
- 插入排序的C++实现
- 插入排序的递归实现
- 插入排序的c实现
- 插入排序的简单实现
- Java实现的插入排序
- 插入排序的c++实现
- 移动开发规范概述
- 不抠图的前提下,如何将图片的黑色部分替换成其它颜色?
- CSpinButtonCtrl 增大减小控件
- Android Layout布局属性三
- Android的surface的三种工作方式
- 插入排序的实现
- 第十二周项目一(1)阅读程序
- ajax 脚本语言直接访问本页面中的WebMethod
- 如何读 Linux 内核
- 磁盘基本概念
- 第十二周项目一阅读程序(1)
- 第12周项目一 程序阅读题(4)
- Creating a class from scratch with Soot
- 正解局域网网关与使用以及将二层lan口做路由器、三层交换机的静态路由出口的实验