插入排序(insertion sort)算法实现

简介:
插入排序算法的原理很简单,首先将数组的第一个数data[0]看成是有序的,然后从第二个元素开始和它前面的元素进行比较,如果从前面的某一个数大,就交换。由于前面的元素是有序的,所以就使有序元素的个数逐渐增大,直到等于n。插入排序的时间复杂度为 O(n^2)

算法的c实现如下:
#include <stdio.h>

void output_array( int data[],  int n)
{
     int i;
     for(i =  0; i < n; i++)
        printf( " %d  ", data[i]);
    printf( " \n ");
}
void swap( int *a,  int *b)
{
     int x;
    x = *a;
    *a = *b;
    *b = x;
}
// 算法实现
void insertion( int data[],  int b,  int e)
{
     int i, j;
     for(i = b +  1; i <= e; i++)
    {
         for(j = i; j >  0 && data[j] > data[j -  1]; j--)
        {
            swap(&data[j], &data[j -  1]);
        }
    }
}

int main()
{
     int data[] = { 5316657766441110986};
    output_array(data,  12);
    insertion(data,  011);
    output_array(data,  12);
     return  0;
}
本文转自银河使者博客园博客,原文链接http://www.cnblogs.com/nokiaguy/archive/2008/05/16/1201081.html如需转载请自行联系原作者

银河使者
相关文章
|
4月前
|
机器学习/深度学习 存储 算法
【算法基础】常数操作 时间复杂度 选择排序 冒泡排序 插入排序 位运算
【算法基础】常数操作 时间复杂度 选择排序 冒泡排序 插入排序 位运算
|
4月前
|
搜索推荐 算法 C#
【Unity 3D】C#中冒泡排序、选择排序、插入排序等算法的详解(附源码 超详细)
【Unity 3D】C#中冒泡排序、选择排序、插入排序等算法的详解(附源码 超详细)
46 1
|
12天前
|
人工智能 搜索推荐 Shell
【排序算法】插入排序与希尔排序,你不想知道为什么希尔比插入更快吗?
【排序算法】插入排序与希尔排序,你不想知道为什么希尔比插入更快吗?
|
14天前
|
搜索推荐 算法 Shell
【数据结构与算法】直接插入排序和希尔排序
【数据结构与算法】直接插入排序和希尔排序
|
16天前
|
机器学习/深度学习 搜索推荐 算法
【排序算法】插入排序与选择排序详解
【排序算法】插入排序与选择排序详解
|
1月前
|
搜索推荐 Python
Python实现插入排序算法
Python实现插入排序算法
10 1
|
1月前
|
搜索推荐 C#
C#实现插入排序算法
C#实现插入排序算法
12 1
|
1月前
|
搜索推荐 Java
Java实现插入排序算法
Java实现插入排序算法
11 0
|
2月前
|
搜索推荐 Python
python实现插入排序算法。
python实现插入排序算法。
13 4
|
2月前
|
搜索推荐 算法 Java
【数据结构排序算法篇】----插入排序【实战演练】
【数据结构排序算法篇】----插入排序【实战演练】
32 1

热门文章

最新文章