zoukankan      html  css  js  c++  java
  • 插入排序算法

    这是我自己写的一个插入排序的算法,main函数是测试用的,insertion_sort()函数就是插入排序的算法:

    /*Author:       Eric
    *Time: 2011.01.07
    *
    *插入排序
    */
    #include <stdio.h>

    void insertion_sort(int a[], int n)
    {
    int i = 1;
    int k = 0;
    while(i < n)
    {
    int temp = a[i];
    for(k = i-1; k >= 0; k--)
    {
    if(temp < a[k])
    a[k+1] = a[k];
    else
    {
    a[k+1] = temp;
    break;
    }
    }
    if(k == -1)
    a[0] = temp;
    i++;
    }
    }

    int main()
    {
    int i = 0;
    int a[] = {6,3,4,3,7,11,3};
    insertion_sort(a, 7);

    printf("a =");
    for(i = 0; i < 7; i++)
    printf(" %d", a[i]);
    printf("\n");

    return 0;
    }
     

    看了一下网上的源码,又有了一些改进,让代码更加紧凑。不过算法还是不是很明晰,看来需要专门学习一下算法了。

    void insertion_sort(int a[], int n)
    {
            int i = 1;
            int k = 0;
            while(i < n)
            {
                    int temp = a[i];
                    k = i-1;
                    while(k >= 0 && a[k] > temp)
                    {
                            a[k+1] = a[k];
                            k--;
                    }
                    a[k+1] = temp;
                    i++;
            }
    }
  • 相关阅读:
    HTML5---offline application(application cache)
    apache asp.net
    长轮询
    comet ajax轮询
    bootstrap3
    weixin
    backbone csdn
    backbone case
    backbone showcase
    javascript performance
  • 原文地址:https://www.cnblogs.com/wangshuo/p/1929724.html
Copyright © 2011-2022 走看看