基础算法之选择排序
来源:互联网 发布:手机降温软件哪个好 编辑:程序博客网 时间:2024/06/04 18:23
选择排序的思想,n个数据存在数组a[0]到a[n-1],然后一个一个排列。先考虑第一个数,存于a[0],需从a[0]到a[n-1]选择出最小的一个数,然后存放于a[0]处,然后考虑第二个数,从a[1]到a[n-1]中找到最小的数,存到a[1],…,直到第n-1个数。可以和冒泡排序的思想相比较,冒泡是通过相邻的两个数据比较,每次循环最终将最大的数排在了最后面,而选择排序是每次选择最小的数,然后排在最前面,由此可以当作一个另类冒泡算法。当然还有一种思路就是每次先定位出最小的数,然后再做替换的操作。以下给出两种写法
C#代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace BubbleSort{ class Program { static void Main(string[] args) { int[] arr = {13,15,1,5,3,55,2,8,15,6,8,19,4,7,11}; SelectSort1(arr); } #region 选择排序 public static void SelectSort(int[] arr) { int len = arr.Length; int temp, k; for (int i = 0; i < len - 1; i++) { k = i; for (int j = i + 1; j < len; j++) { if (arr[j] < arr[k]) { k = j; } } if (i != k) { temp = arr[i]; arr[i] = arr[k]; arr[k] = temp; } } Console.WriteLine("选择排序后的顺序:" + string.Join(",", arr)); Console.ReadLine(); } public static void SelectSort1(int[] arr) { int len = arr.Length; int temp; for (int i = len - 1; i >= 0; i--) { for (int j = len-1; j > len-i-1; j--) { if (arr[j] < arr[j - 1]) { temp = arr[j-1]; arr[j - 1] = arr[j]; arr[j] = temp; } } } Console.WriteLine("选择排序后的顺序:" + string.Join(",", arr)); Console.ReadLine(); } #endregion } }
运行结果
若有错误,请指正
0 0
- 基础算法之选择排序
- 算法基础之选择排序
- 算法基础之选择排序
- 基础算法之 选择排序
- 算法基础之排序篇-选择排序
- 基础算法之排序(2)--选择排序
- 算法(algorithms)基础之:选择排序
- java基础算法之选择排序
- 算法基础之选择排序法
- 算法基础之----直接选择排序
- 算法基础之----二元选择排序
- 基础算法系列(十五)排序算法之选择排序
- 【基础算法】排序-简单排序之二(选择排序)
- 【算法基础】选择排序
- 【基础算法】选择排序
- 基础算法之四--排序: 之选择排序
- 基础算法之排序(2)--选择排序 改进
- 基础算法之排序(2)--简单选择排序
- Android Studio :如何导入Eclipse项目与AndroidStudio项目?
- 浙大 PAT a1001
- 第二十四期 OpenWrt ipk helloworld 《路由器就是开发板》
- UnityGUI系统之容器、下拉列表与自动布局
- 浙大 PAT a1002
- 基础算法之选择排序
- streaming常见计算任务失败原因
- 集合之 Collection-List->ArrayList三种遍历方式 常用方法
- 浙大 PAT a1005
- Python.PyCrypto -- 密码学工具箱
- 浙大 PAT a1008
- 浙大 PAT a1011
- Ubuntu系统下MySQL开启远程连接
- 第二十五期 总结《路由器就是开发板》