数据结构与算法——插入类排序(直接插入排序,希尔排序)
来源:互联网 发布:淘宝助理打开没有 编辑:程序博客网 时间:2024/05/24 07:34
一、直接插入排序
对于一个有序的序列,不断将后面的元素插入前面的有序序列,保持序列继续有序。
对于直接插入排序的思路:将要排序的元素保存,然后逐个和其前面的元素进行比较,如果前面的元素比其大,则将前面的元素后移一个。
时间复杂度为n*n
void insert_sort(int a[],int n){ int i,j; int temp; for(i=1;i<n;i++) { temp = a[i]; j=i-1; while((j>=0)&& (temp<a[j])) { a[j+1] = a[j];j--; } a[j+1] = temp; } }
二、希尔排序
把整个序列分割成为若干个子序列,分别进行插入排序。待整个序列“基本有序”,再对全体序列进行排序。
#include <stdio.h>void shell_sort(int a[],int n){int i,j,k,temp; //选择间隔为每次都除以2,取整数for(i=n/2;i>0;i=i/2) //i为间隔{ for(j=i;j<n;j++) { temp = a[j]; for(k=j-i;(k>=0)&&(temp<a[k]);k=k-i) { a[k+i] = a[k]; } a[k+i] = temp; }}for(i=0;i<n;i++){ printf("%d,",a[i]);}}void main(){ int a[] = {5,6,2,9,3,1,77,22,17};int n =9;shell_sort(a,n);}
0 0
- 数据结构与算法——插入类排序(直接插入排序,希尔排序)
- 排序算法——插入排序(直接插入排序、折半插入排序、希尔排序)
- 数据结构与算法专题之查找与排序——插入类排序(插入、希尔)
- 数据结构-直接插入排序与希尔排序
- 数据结构与算法——插入排序和希尔排序
- Java排序算法总结之(一)——插入排序(直接插入排序、折半插入排序、希尔排序)
- 算法-排序-插入排序(直接插入和希尔排序)
- 数据结构之排序算法(五)-直接插入排序,希尔排序,直接选择排序
- 插入排序(直接插入排序与希尔排序)
- 【排序算法】直接插入排序与希尔(Shell)排序
- 排序算法之直接插入排序与希尔排序
- 数据结构与算法:七种排序算法总结(冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序、快速排序)
- 插入排序——直接插入排序和希尔排序
- Java---插入类排序(直接插入排序,希尔排序)
- 算法与数据结构——选择,插入,希尔排序
- 数据结构排序--直接插入和希尔排序
- 排序算法--直接插入排序、折半插入排序、希尔排序
- 数据结构精要------直接插入排序和希尔排序算法
- HtmlHelper与扩展方法
- 《技术管理之巅:如何从零打造高质效互联网技术团队?》
- In与Exists的区别
- POJ 3264 Balanced Lineup(ST)
- 使用Ajax异步上传图片的方法(html,javascript,php)
- 数据结构与算法——插入类排序(直接插入排序,希尔排序)
- 【转载】职场人要远离的各种“负能量”
- mybatis 获取insert的id
- python入门读书笔记
- 每天一个linux命令(41):ps命令
- 第一个Python小程序
- 面向对象设计原则
- Android 判断手机是否连接网络
- request、response 中文乱码问题与解决方式