冒泡排序的算法详解课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
冒牌排序详解:
// 编一个程序,从键盘输入10个实数,存入一个数组,用冒泡法对这个数作升序排序。
/*冒泡排序算法的运作如下: 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是
最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
冒泡排序的算法详解
13
序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 76 27 49 97
76>27, 交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 27 76 49 97
冒泡排序的算法详解
14
序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 27 76 49 97
冒泡排序的算法详解
16
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace 冒泡排序 {//编一个程序,从键盘输入10个实数,存入一个数组,用冒泡法对这个数作升序排序
class Program {
static void Main(string[] args) {
int i, j; int temp; int [] a = new int [10]; // 从键盘输入10个实数 Console.WriteLine ("请输入10个实数:"); for (i = 0; i < 10;i++ ) {
第一趟排序的步骤: 49>38,交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 97 76 13 27 49
冒泡排序的算法详解
3
序号 1 2 3 4 5 6 7 8 数据 38 49 65 97 76 13 27 49
49<65, 保持不变
序号 1 2 3 4 5 6 7 8 数据 38 49 65 97 76 13 27 49
Console.Write("请输入第{0}个数:",i); a[i] = int.Parse(Console.ReadLine ()); }
冒泡排序的算法详解
17
//存入一个数组。排序前的数据 Console.Write("排序前的数据顺序:"); for (i = 0; i < 10; i++) { Console.Write("{0,4}", a[i]); }
*/
冒泡排序的算法详解
1
例:用冒泡排序的方法将下面一组无序数组 排成从小到大的顺序。
{ 49,38,65,97,76,13,27,49 }
分析:首先为了方便分析,我们把所给的数据 先用一个表格列出来,如下:
Biblioteka Baidu
冒泡排序的算法详解
2
原始数据
序号 1
2
3
4
5
6
7
8
数据 49 38 65 97 76 13 27 49
冒泡排序的算法详解
10
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
49<65, 保持不变
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
冒泡排序的算法详解
11
序 号
1
数 据
38
2345678 49 65 76 13 27 49 97
97>76, 交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 97 13 27 49
冒泡排序的算法详解
6
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 97 13 27 49
97>13, 交换位置 序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 97 27 49
冒泡排序的算法详解
4
序号 1 2 3 4 5 6 7 8 数据 38 49 65 97 76 13 27 49
65<97, 保持不变 序号 1 2 3 4 5 6 7 8 数据 38 49 65 97 76 13 27 49
冒泡排序的算法详解
5
序号 1 2 3 4 5 6 7 8 数据 38 49 65 97 76 13 27 49
65<76, 保持不变
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
冒泡排序的算法详解
12
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
76>13, 交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 76 27 49 97
//用冒泡法对这个数作升序排序 for (i = 0; i <10;i++ )// 元素的个数。 {
for (j = 0; j <9; j++)// 相邻的2个数比较,每次都要比较9次 。 要比较的次数比元素个数少1次 {
冒泡排序的算法详解
7
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 97 27 49
97>27, 交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 97 49
冒泡排序的算法详解
8
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 97 49
76>49, 交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 27 49 76 97
冒泡排序的算法详解
15
序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 27 49 76 97
76<97, 保持不变 序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 27 49 76 97
97>49, 交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
冒泡排序的算法详解
9
第一趟排序后的数据和序号 序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
第二趟排序的步骤: 38<49,保持不变
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
// 编一个程序,从键盘输入10个实数,存入一个数组,用冒泡法对这个数作升序排序。
/*冒泡排序算法的运作如下: 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是
最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
冒泡排序的算法详解
13
序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 76 27 49 97
76>27, 交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 27 76 49 97
冒泡排序的算法详解
14
序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 27 76 49 97
冒泡排序的算法详解
16
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace 冒泡排序 {//编一个程序,从键盘输入10个实数,存入一个数组,用冒泡法对这个数作升序排序
class Program {
static void Main(string[] args) {
int i, j; int temp; int [] a = new int [10]; // 从键盘输入10个实数 Console.WriteLine ("请输入10个实数:"); for (i = 0; i < 10;i++ ) {
第一趟排序的步骤: 49>38,交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 97 76 13 27 49
冒泡排序的算法详解
3
序号 1 2 3 4 5 6 7 8 数据 38 49 65 97 76 13 27 49
49<65, 保持不变
序号 1 2 3 4 5 6 7 8 数据 38 49 65 97 76 13 27 49
Console.Write("请输入第{0}个数:",i); a[i] = int.Parse(Console.ReadLine ()); }
冒泡排序的算法详解
17
//存入一个数组。排序前的数据 Console.Write("排序前的数据顺序:"); for (i = 0; i < 10; i++) { Console.Write("{0,4}", a[i]); }
*/
冒泡排序的算法详解
1
例:用冒泡排序的方法将下面一组无序数组 排成从小到大的顺序。
{ 49,38,65,97,76,13,27,49 }
分析:首先为了方便分析,我们把所给的数据 先用一个表格列出来,如下:
Biblioteka Baidu
冒泡排序的算法详解
2
原始数据
序号 1
2
3
4
5
6
7
8
数据 49 38 65 97 76 13 27 49
冒泡排序的算法详解
10
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
49<65, 保持不变
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
冒泡排序的算法详解
11
序 号
1
数 据
38
2345678 49 65 76 13 27 49 97
97>76, 交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 97 13 27 49
冒泡排序的算法详解
6
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 97 13 27 49
97>13, 交换位置 序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 97 27 49
冒泡排序的算法详解
4
序号 1 2 3 4 5 6 7 8 数据 38 49 65 97 76 13 27 49
65<97, 保持不变 序号 1 2 3 4 5 6 7 8 数据 38 49 65 97 76 13 27 49
冒泡排序的算法详解
5
序号 1 2 3 4 5 6 7 8 数据 38 49 65 97 76 13 27 49
65<76, 保持不变
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
冒泡排序的算法详解
12
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
76>13, 交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 76 27 49 97
//用冒泡法对这个数作升序排序 for (i = 0; i <10;i++ )// 元素的个数。 {
for (j = 0; j <9; j++)// 相邻的2个数比较,每次都要比较9次 。 要比较的次数比元素个数少1次 {
冒泡排序的算法详解
7
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 97 27 49
97>27, 交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 97 49
冒泡排序的算法详解
8
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 97 49
76>49, 交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 27 49 76 97
冒泡排序的算法详解
15
序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 27 49 76 97
76<97, 保持不变 序号 1 2 3 4 5 6 7 8 数据 38 49 65 13 27 49 76 97
97>49, 交换位置
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
冒泡排序的算法详解
9
第一趟排序后的数据和序号 序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
第二趟排序的步骤: 38<49,保持不变
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97