3经典算法设计 计草机利学与校术学网 算法9.4: 1)城市数目为5,从A城市出发, 列出所有 可能的路线和距离 来讲解这个算法,并要求商人从 2)路线距离 路线 距离 只需考虑用A开头的排列即可, ABCDE 38 ADBCE 49 ABCED 40 ADBEC 45 10 E ABDCE 44 ADCBE 45 10 13 ABDEC 38 ADCEB 41 ABECD 41 ADECB 39 ABEDC 34 ADEBC 39 ACBDE 42 AEBCD 45 ACBED 39 AEBDC 44 10 ACDEB 34 AECBD 49 ACDBE 44 AECDB 44 ACEBD 45 AEDBC 42 ACEDB 38 AEDCB 38 3)在上述路线中找出最小值34,距离为34 的路线有两条:ABEDCA和ACDEBA
3.经典算法设计 2)旅行商问题: 我们以图9.2所示的5个城市为例来讲解这个算法,并要求商人从 A城市出发,来求得最短路径。这时只需考虑用A开头的排列即可, 也就是有4!种可能的排列解 算法9.4: 1)城市数目为5,从A城市出发,列出所有 可能的路线和距离 2)路线 距离 路线 距离 ABCDE 38 ADBCE 49 ABCED 40 ADBEC 45 ABDCE 44 ADCBE 45 ABDEC 38 ADCEB 41 ABECD 41 ADECB 39 ABEDC 34 ADEBC 39 ACBDE 42 AEBCD 45 ACBED 39 AEBDC 44 ACDEB 34 AECBD 49 ACDBE 44 AECDB 44 ACEBD 45 AEDBC 42 ACEDB 38 AEDCB 38 3)在上述路线中找出最小值34,距离为34 的路线有两条:ABEDCA和ACDEBA
3.经典算法设计 杜算风利学与技本学脑 3)冒泡法排序: 冒泡排序法的思想比较简单,对于个元素,从第一个开始依次 比较相邻的两个,如果是逆序就交换它们的位置。重复多次以后,最 大(或最小)的元素就“沉到”列表的最后一个位置。第二遍操作将 第二大(或小)的元素沉下去,这样一直操作,直到-1遍后,列表 就排好序了。我们以10个数字的升序排列为例讲解这个算法
3.经典算法设计 3)冒泡法排序: 冒泡排序法的思想比较简单,对于n个元素,从第一个开始依次 比较相邻的两个,如果是逆序就交换它们的位置。重复多次以后,最 大(或最小)的元素就“沉到”列表的最后一个位置。第二遍操作将 第二大(或小)的元素沉下去,这样一直操作,直到n-1遍后,列表 就排好序了。我们以10个数字的升序排列为例讲解这个算法
3.经典算法设计 计草机利学与校未学网 3) 冒泡法排序: 【算法分析】 首先将第1个数字和第2个数字进行比较,若为逆序(即第1个数 字大于第2个数字),则交换两个变量的值。然后比较第2个数字和第 3个数字的值,若为逆序则交换之。依次类推,直到第9个和第10个数 字比较完为止。这个过程称为第一趟冒泡排序,其结果是将最大的数 字转移到最后一个位置上。然后进行第二趟冒泡排序,对前9个数字 进行同样操作,将第二大的数字转移到第九个数字的位置。这样的冒 泡排序一共需要进行9趟。由此得到算法9.5。图9.3展示了冒泡排序 的一个实例,从图中可以看出,在冒泡排序的过程中,小的数字好比 水中的气泡逐渐向上漂浮,大的数字就像石块一样逐渐下沉,每一趟 都会有一个“最大”的石块沉到水底
3.经典算法设计 3)冒泡法排序: 【算法分析】 首先将第1个数字和第2个数字进行比较,若为逆序(即第1个数 字大于第2个数字),则交换两个变量的值。然后比较第2个数字和第 3个数字的值,若为逆序则交换之。依次类推,直到第9个和第10个数 字比较完为止。这个过程称为第一趟冒泡排序,其结果是将最大的数 字转移到最后一个位置上。然后进行第二趟冒泡排序,对前9个数字 进行同样操作,将第二大的数字转移到第九个数字的位置。这样的冒 泡排序一共需要进行9趟。由此得到算法9.5。图9.3展示了冒泡排序 的一个实例,从图中可以看出,在冒泡排序的过程中,小的数字好比 水中的气泡逐渐向上漂浮,大的数字就像石块一样逐渐下沉,每一趟 都会有一个“最大”的石块沉到水底
冒泡法排序 0 杜算凤利学气技本学魔 1793% 973 44663804173592初始关键字 6474731920 648735942 64730984 61734918 73694元 17239364 第一趟冒泡排序后 第二趟冒泡排序后 第三趟冒泡排序后 第四趟冒泡排序后 第五趟冒泡排序后 第六趟冒泡排序后 第七趟冒泡排序后 第八趟冒泡排序后
冒泡法排序