`

起泡排序与简单排序法

 
阅读更多

using System;

namespace 排序算法
{
class Class1
{
   static void Main(string[] args)
   {
    int[] arr = new int[]{49,38,65,97,76,13,27,49};
    int i;

    System.Console.WriteLine("排序前");
    for(i=0; i<arr.Length; i++)
     System.Console.WriteLine(arr[i]);

    simpleSelectionSorting(arr, arr.Length);

    System.Console.WriteLine("排序后");
    for(i=0; i<arr.Length; i++)
     System.Console.WriteLine(arr[i]);
   }

   /** 起泡排序
    * 将长度为 len 的记录表的记录按非递减有序排列
    */
   static void bubbleSorting(int[] arr, int len)
   {
    int i, j;
    int temp;
    for(i=0; i<len-1; i++)    //控制循环的趟数
    {
     for(j=0; j<len-i-1;j++)   //控制某趟数所对应的次数
     {
      if(arr[j]>arr[j+1])   //逆序则交换
      {
       temp = arr[j];
       arr[j] = arr[j+1];
       arr[j+1] = temp;
      }
     }
    }
   }

   /** 简单选择排序
    * 将长度为 len 的记录表的记录按非递减有序排列
    */
   static void simpleSelectionSorting(int[] arr, int len)
   {
    int i, j, k;
    int temp;
    for(i=0; i<len-1; i++)    //控制循环的趟数
    {
     for(j=i,k=i; j<len;j++)   //从len-i+1条记录中选择最小的记录
     {
      if(arr[k]>arr[j])
       k = j;     //记录较小记录的下标
     }
     if(k!=i)      //如果len-i+1条记录的最小记录和第i条记录不重合
     {
      temp = arr[k];
      arr[k] = arr[i];
      arr[i] = temp;
     }
    }
   }
}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics