如要将数组:[32,84,16,5,8] 按升序排列成:[5,8,16,32,84] 选择排序: 第一趟:将第一个数与第二个数相比较;若第二个数较小,则第一个数与第二个数交换,否则不变; 再将第一个数与第三个数比较,若第三个数较小,则交换,否则不变; 依此类推,则第一趟排序时各数据所处位置应是: 初始:32,84,16,5,8 第一次比较后:32,84,16,5,8 (注:第一次比较后,因84>32,故不变) 第二次比较后:16,84,32,5,8 (注:第二次比较后,因16<32,故交换,此时处于第一位置的16即为新的第一个数) 第三次比较后:5,84,32,16,8 (注:第三次比较时,16是第一位数,与第四位数5相比较) 第四次比较后:5,84,32,16,8 (注:第四次比较后,因8>5,故不变) 第二趟排序时,因首位数字5己是最小数,且排在第一位,就可以不再管它了,就只需对数组:[84,32,16,8] 进行排序,具体过程同上面一样。冒泡排序: 首先将处于第一位置的数与处第二位置的数相比较,若第二位置的数较小,则交换,否则不变;此处,因84>32,故不变。 然后将第二位置的数与第三位置的数比较,若后者较小,则交换,否则不变;此例中,因16<84,故交换; 交换后,84即为新的第三位置数。 之后,再将第三位置的数与第四位置的数比较,若后者小,则交换,否则不变;此例中,因5<84,故交换; 交换后,84为新的第四位置数。 依此类推,将第四位置数与第五位置数相比较,即完成了第一趟排序。 第一趟排序过程中各数据位置: 初始:32,84,16,5,8 第一次比较后:32,84,16,5,8 第二次比较后:32,16,84,5,8 第三次比较后:32,16,5,84,8 第四次比较后:32,16,5,8,84 第二趟排序与第一趟排序类似,只是所需排的数组是:[32,16,5,8] 因最后一个数字己经是最大,且排在最后,故不再管它。