【算法系列】—选择排序
来源:互联网 发布:php redis队列处理秒杀 编辑:程序博客网 时间:2024/06/05 00:30
前言
学习计算机的程序媛们都知道算法的重要性,算法在我们的知识体系以及日常生活中都起到了非常重要的作用,所以算法的研究指日可待,接下来小编将对算法进行系列的总结,还望各位大神们的指导。叙述
接下来小编将和大家一起学习选择排序,小编将从定义、代码、图、排序过程等方面对选择排序有一个认识。
选择排序
定义:
假设第一个数是最小的,用第一个数去和后面的所有数据去比较,选择最小的数据放到首位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列队首。以此类推,直到所有元素均排序完毕。
排序过程:
图
代码
方法一:引入位置标量,记录每一次排序完以后的最小数据的位置,每一个内排序只交换一次
private void btnSelect_Click(object sender, EventArgs e) { listBox1.Items.Clear(); int[] data = { 7, 5, 3, 4, 1,2,6,8,9,0 };//带排序列 #region 选择排序 int temp; for (int i = 0; i < data.Length - 1; i++) { int pos = i; for (int j = i + 1; j < data.Length; j++) { if (data[j] < data[pos]) { pos = j; } } if (pos != i) { temp = data[i]; data[i] = data[pos]; data[pos] = temp; } //在listbox中显示排序过程 listBox1.Text = ""; string p = " "; for (int k = 0; k < data.Length; k++) { p += data[k] + " "; } listBox1.Items.Add(p); p = ""; } #endregion //在文本框中显示最终结果 string select = " "; for (int z = 0; z < data.Length; z++) { select += data[z] + " "; } textBox2.Text = select; }
方法二:每比较一次交换一次
private void button3_Click(object sender, EventArgs e) { listBox1.Items.Clear(); int[] data = { 7, 5, 3, 4, 1, 2, 6, 8, 9, 0 };//带排序列 int temp; for (int i = 0; i < data.Length - 1; i++) { for (int j = i + 1; j < data.Length; j++) { if (data[i] > data[j]) { temp = data[i]; data[i] = data[j]; data[j] = temp; } } //显示排序过程 listBox1.Text = ""; string p = " "; for (int k = 0; k < data.Length; k++) { p += data[k] + " "; } listBox1.Items.Add(p); p = ""; } //显示最终结果 string select = " "; for (int z = 0; z < data.Length; z++) { select += data[z] + " "; } textBox2.Text = select; }
小结
选择排序是最基本的排序之一,实现排序的方法有很多种,我们要使用尽可能多的方法实现选择排序,多角度的去认识一个算法。
阅读全文
0 0
- 【算法系列】—选择排序
- 排序算法系列:选择排序算法
- 算法系列-直接选择排序
- 排序算法系列——直接选择排序
- 排序算法系列-选择之直接选择
- 排序算法系列二(选择排序)
- 排序算法系列之选择排序
- 排序算法系列之选择排序
- PHP排序算法系列:直接选择排序
- Java系列-排序算法之选择排序
- 基础算法系列(一)——选择排序
- 基础算法系列(十五)排序算法之选择排序
- 排序算法—选择排序
- 傻瓜学算法系列之排序——3.选择排序
- 排序算法系列之(一)——选择排序清新脱俗的一面
- 经典排序算法系列之二:选择排序
- 七大排序算法系列之简单选择排序
- 排序算法系列---简单选择排序(C++)
- C++打印今天年月日,时间和星期几。
- atexit()函数
- PHP-计算常用函数
- 二进制补码
- Java Web 2.2 CSS样式表
- 【算法系列】—选择排序
- meta标签属性应用及部分实用标签复习
- [算法]时间复杂度
- GridView 使用方法详解
- bootstrapTable和mui中表格的使用
- 堆排序实现
- 面向服务编程之Dubbo
- ok请求
- 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。