算法_排序方式 Day0815

冒泡排序

//每一次冒泡都会把最大的放到最后

/* 第一次

*  第二次  12,  14,  34, 9, 23, 55, 10.5, 8, 84, 90

...

//双循环、外层循环控制趟数、内层循环控制比较次数

//1.比较相邻的元素,如果第一个比第二个大,那么交换位置(右边最大)

//2.对每对相邻的元素做相同的工作,从第一对到结尾的最后一对

//3.针对所有的元素重复以上步骤

//4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

//控制趟数

static void Main(string[] args)

{

double[] bArray = { 12, 90, 14, 84, 34, 9, 23, 55, 10.5, 8 };

for (int i = 0; i < bArray.Length - 1; i++)          外层循环控制趟数

{

                    for (int j = 0; j < bArray.Length - 1-i; j++)          内层循环控制比较次数

                    {

                                   if (bArray[j] > bArray[j + 1])

                                  {

                                  double num = bArray[j];

                                   bArray[j] = bArray[j + 1];

                                  bArray[j + 1] = num;

                                 }

                  }

}


 foreach (var item in bArray)

 {   Console.WriteLine(item);    }

}

Test:

for (i=0,i< barray.Length-1, i++)     //i<=barrat.Length-1-i

{

 for(j=0,j<=barray.length-1,j++)

{  if b[j]>=b[j+1]

int temp=barray[j];

barray[j]=barrat[j+1];

baart[j+1]=temp

}

选择排序

首先通过n-1次比较,从n个数中找出最小的,将他与第一个数交换,这是第一趟选择排序,最小的数安放在了第一个值。

//在通过n-2次比较,从剩余的n-1个数中找出最小的,将他与第二个数交换,这是第二趟选择排序

//......

//重复上述过程,共经过n-1次

//每一趟都会选择出一个最小值来跟前面相应的元素做交换(相应的元素:第几趟就是第几个元素)

/* 49 38 65 97 76 12 27

* 第一趟

* 12 38 65 97 76 49 27

* 第二趟

* 12 27 65 97 76 49 38

* 第三趟

* 12 27 38 97 76 49 65

* 第四趟

* 12 27 38 49 76 97 65

* 第五趟

* 12 27 38 49 65 97 76

* 第六趟

* 12 27 38 49 65 76 97

*/

int [ ] a={11,22,33,6,55,88}

int min = a[0];

int index=0;

for  (int i=0;i

{

  min=a[i];

   index=i;

       for(int j=i+1;j

           {

              if a[j]

             {       

                      min=a[j];

                    index=j;

              }

}

a[index]=a[i]

a[i]=min;


}

你可能感兴趣的:(算法_排序方式 Day0815)