大侠江城子

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
选择排序不像冒泡排序算法那样先并不急于调换位置,第一轮(k=1)先从array[k]开始逐个检查,看哪个数最小就记下该数所在的位置于minlIndex中,等一轮扫描完毕,如果找到比array[k-1]更小的元素,则把array[minlIndex]和a[k-1]对调,这时array[k]到最后一个元素中最小的元素就换到了array[k-1]的位置。 如此反复进行第二轮、第三轮…直到循环至最后一元素

 void SelectSort(int[] numArray)
                {
                    int min, tmp;
                    for (int i = 0; i < numArray.Length - 1; i++)
                    {
                        min = i;
                        for (int j = i + 1; j < numArray.Length; j++)
                        {
                            if (numArray[j] < numArray[min])
                            {
                                min = j;
                            }
                        }
                        tmp = numArray[i];
                        numArray[i] = numArray[min];
                        numArray[min] = tmp;
                    }

                }

posted on 2010-10-20 11:25  大侠江城子  阅读(158)  评论(0)    收藏  举报