总结算法(未完待更)

来源:互联网 发布:东南亚海关数据 编辑:程序博客网 时间:2024/06/05 03:04

一、冒泡算法:下面示例是一个10个数字组成的数组的大小排序(慢)

public void BubbleSort()
{
     int temp;    //用做交换的中间值
     for (int outer = 9; outer >= 1; outer--)
    {
           for (int inner = 0; inner <= outer - 1; inner++)
          {
                 if ((int)arr[inner] > arr[inner + 1])
                {

                   //下面这个方法是用来交换顺序
                  temp = arr[inner];
                  arr[inner] = arr[inner + 1];
                  arr[inner + 1] = temp;
               }
          }
    }
}



二、选择排序法:将所有的数进行比较,然后将第一个数与最小的数的位置交换,接着剩下的继续比较,然后剩下的最小数与第二个位置进行交换,以此类推。。

public void SelectionSort()
{
   int min, temp;
   for (int outer = 0; outer <= 9; outer++)
   {
      min = outer;
      for (int inner = outer + 1; inner <= 9; inner++)
      {
         if (arr[inner] < arr[min]) min = inner;
      }
      temp = arr[outer];
      arr[outer] = arr[min];
      arr[min] = temp;
   }
}



三、插入排序法:类似于人们通常按照数字顺序或者字母顺序进行排序的方法。

public void InsertionSort()
{
int inner, temp;
for (int outer = 1; outer <= 9; outer++)
{
temp = arr[outer];
inner = outer;
while (inner > 0 && arr[inner - 1] >= temp)
{
arr[inner] = arr[inner - 1];
inner -= 1;
}
arr[inner] = temp;
}
}





三者代码量相近,但是执行效率:选择》冒泡》插入,优先考虑选择排序法



0 0