数据结构和算法之简单选择排序

 /// <summary>
        /// 简单选择排序
        /// 给定数组:int[] arr={里面n个数据};
        /// 第1趟排序,在待排序数据arr[1]~arr[n]中选出最小的数据,将它与arrr[1]交换;
        /// 第2趟,在待排序数据arr[2]~arr[n]中选出最小的数据,将它与r[2]交换;
        /// 以此类推,第i趟在待排序数据arr[i]~arr[n]中选出最小的数据,将它与r[i]交换,直到全部排序完成。
        /// </summary>
        /// <param name="arry"></param>
        public static void EasySelectSort(int[] arry)
        {
            for (int i = 0; i < arry.Length-1; i++)
            {
                int k = i;//标记最小的数字的索引
               
                for ( int j = k+1; j < arry.Length-1; j++)
                {
                    if(arry[j]<arry[k])//找到最小的数据
                    {
                        k = j;
                    }
                }
                //内层循环结束找到最小的数字
                if(k!=i)
                {
                    Swap(arry, k, i);
                }
            }
        }

时间复杂度:n^2

猜你喜欢

转载自www.cnblogs.com/weiqiangwaideshijie/p/10544776.html