简单排序算法(插入、选择、冒泡)

/***************插入排序算法**********/
void InsertSort(int *a, int len)
{
    for(int j = 1; j < len; j++)
    {
        int key = a[j];

        int i = j - 1;
        while(i>=0 && a[i]>key)
        {
            a[i+1] = a[i];
            i--;
        }

        a[i+1] = key;
    }
}

/*********选择排序****************/
void SelectSort(int *a, int len)
{
    for(int i = 0; i < len; i++)
    {
        int min = a[i], minpos = 0;
        for(int j = i + 1; j < len; j++)
        {
            if(a[j] < min)
            {
                min = a[j];
                minpos = j;
            }
        }

        if(min < a[i])
        {
            int temp = a[i];
            a[i] = min;
            a[minpos] = temp;
        }
    }
}

/******************冒泡排序************/
void BubbleSort(int *a, int len)
{
  for(int i = 0; i < len-1; i++)
  {
      for(int j = len-1; j > i; j--)
      {
          if(a[j]<a[j-1])
          {
              int tmp = a[j];
              a[j] = a[j-1];
              a[j-1] = tmp;
          }
      }
  }
}

posted @ 2013-07-13 14:11  xly0713  阅读(163)  评论(0编辑  收藏  举报