算法学习 - 插入排序,希尔排序
来源:互联网 发布:丰田车导航软件 编辑:程序博客网 时间:2024/05/17 04:13
排序算法
插入排序
插入排序是比较基本的算法,总体的思想来说就是,从头遍历到尾:遍历的时候把当前遍历的元素插入到前面已经遍历过的序列中。
下面是插入排序的代码:
//// main.cpp// insertSort//// Created by Alps on 14-8-1.// Copyright (c) 2014年 chen. All rights reserved.//#include <iostream>using namespace std;void insertSort(int *A, int length){ int i = 0,j = 0; for (i = 0; i < length; i++) { int tmp = A[i]; for (j = i; j > 0 && A[j-1] > tmp; j--) { A[j] = A[j-1]; } A[j] = tmp; }}int main(int argc, const char * argv[]){ int A[] = {34,8,64,51,32,21}; int length = sizeof(A)/sizeof(int); insertSort(A, length); for (int i = 0; i < length; i++) { printf("%d ",A[i]); } printf("\n"); return 0;}
希尔排序
希尔排序是和插入排序感觉比较像的,但是仅仅相像在交换元素上,希尔排序是增量的排序算法,一般的增量为N/2. 不断缩小到1.
下面是代码:
//// main.cpp// shellSort//// Created by Alps on 14-8-1.// Copyright (c) 2014年 chen. All rights reserved.//#include <iostream>using namespace std;void shellSort(int *A, int length){ int i = 0; int j = 0; for (int increment = length/2; increment > 0; increment /=2) { for (i = increment; i < length; i++) { int tmp = A[i]; for (j = i; j >= increment; j-=increment) { if (tmp < A[j - increment]) { A[j] = A[j-increment]; }else{ break; } } A[j] = tmp; } }}int main(int argc, const char * argv[]){ int A[]={81,94,11,96,12,35,17,95,28,58,41,75,15}; int length = sizeof(A)/sizeof(int); shellSort(A, length); for (int i = 0; i < length; i++) { printf("%d ",A[i]); } printf("\n"); return 0;}
0 0
- 算法学习 - 插入排序,希尔排序
- 插入排序算法-希尔排序
- 希尔排序-插入排序算法
- 插入排序----希尔排序算法
- 【经典排序算法】插入排序、希尔排序
- 排序算法-插入排序_希尔排序
- 排序算法--插入排序之希尔排序
- 排序算法-插入排序之希尔排序
- 实现希尔插入排序算法
- 实现希尔插入排序算法。
- 排序算法--直接插入排序、折半插入排序、希尔排序
- 数据结构-算法: 插入排序(希尔排序法)
- 数据结构-算法: 插入排序(希尔排序法)
- 排序算法三:希尔插入排序
- 【算法】简单插入排序与希尔排序
- 算法分析-插入排序(直接插入排序 & 希尔排序)
- 算法-排序-插入排序(直接插入和希尔排序)
- 插入排序算法之直接插入排序和希尔排序
- 解决Python中Pyramid 1.5a2+框架的Chameleon、Mako模板引用故障
- JQuery获取$(this)子节点对象的方法
- 黑马程序员 java学习笔记——IO流2
- Vi编辑器的使用方法
- [leetcode] Search Insert Position
- 算法学习 - 插入排序,希尔排序
- Spring中的applicationContext.xml与SpringMVC的xxx-servlet.xml的区别
- orcal的数据库编程plsql
- 【双层loop】题型总结
- C#socket传字节数组到flash socket接收 大小端(字节序)问题
- Vs2010 配置驱动开发环境
- I,P,B帧和PTS,DTS的关系
- R语言学习(3)-列表和数据框
- malloc 从哪里得到的内存空间