數據結構和算法之簡單選擇排序

 /// <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數組

相關文章
相關標籤/搜索