选择排序算法

来源:互联网 发布:最大公约数怎么求算法 编辑:程序博客网 时间:2024/05/01 09:05

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

 

//选择排序算法

  对数arr使用选择排序算法排序,有两种方式

第一种是,首先假设第一个元素为最小,然后拿第一个与第二个相比,如果第二个小,那么就交换值,保持第一个为最小,一直比较到最后一个元素,然后再从第二个开始上一个步骤。

第二种是, 首先假设第一个元素为最小,然后拿第一个与第二个相比,如果第二个小,那么就取出第二个的索引值index=2,第一个循环结束后,得到最小值的索引,最后和第一个元素交换。

publicvoid SelectionSort()

 

        {

           

//第一种 直接交换,比较一个最小的就放到第一位

 

           

//for (int j = 0; j < arr.Length-1; j++)

 

           

//{

 

           

//    int min, temp;

 

           

//    min = arr[j];

 

           

//    for (int i = j+1; i < arr.Length; i++)

 

           

//    {

 

                  

           

//        if (arr[j] > arr[i])

 

           

//        {

 

           

//            temp = arr[j];

 

           

//            arr[j] = arr[i];

 

           

//            arr[i] = temp;

 

           

//        }

 

 

           

//    }

 

           

//    this.DisplayElements();

 

           

//    Console.Write("\n");

 

           

//}

 

           

//第二种  比较保存较小的index值,最后放到第一位

 

           

for (int j = 0; j < arr.Length-1; j++)

 

            {

               

int min,temp;

 

                min = j;

               

for (int i = j+1; i < arr.Length; i++)

 

                {

                   

if (arr[min] > arr[i])

 

                    {

                        min = i;

                    }

                }

                temp = arr[j];

                arr[j] = arr[min];

                arr[min] = temp;

 

            }

        }

       

 

 

原创粉丝点击