`
peonyzzdx
  • 浏览: 583145 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

排序算法

 
阅读更多
[size=medium]冒泡排序
交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。
     应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。
思路
  从0到n-1,两两比较数组中的元素,如果前者大于后者,则交换之(如a[0]>a[1],则交换a[0]和a[1])。作一趟冒泡排序后,最大值就在最后一个位置a[n-1]上了。然后对余下的0到n-2个元素作第二趟冒泡排序,次最大值就去到倒数第二个位置a[n-2]上了,如此类推。
  例如对10,-3,5,34,-34,5,0,9进行排序
  第一趟:-3,5,10,-34,5,0,9,34
  第二趟:-3,5,-34,5,0,9,10,34
  第三趟:-3,-34,5,5,0,9,10,34
  第四趟:-34,-3,5,0,5,9,10,34
  第五趟:-34,-3,0,5,5,9,10,34
  这时不再发生交换,排序结束


这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名。
冒泡排序是就地排序,且它是稳定的。

选择排序:

选出最小的与第一个交换位置,然后从第二个元素开始再选出最小的那个和第二个元素交换,依次重复,直到正序为止


排序过程

【示例】:
初始关键字 [49 38 65 97 76 13 27 49]
第一趟排序后 13 [38 65 97 76 49 27 49]
第二趟排序后 13 27 [65 97 76 49 38 49]
第三趟排序后 13 27 38 [97 76 49 65 49]
第四趟排序后 13 27 38 49 [76 97 65 49 ]
第五趟排序后 13 27 38 49 49 [97 65 76]
第六趟排序后 13 27 38 49 49 65 [97 76]
第七趟排序后 13 27 38 49 49 65 76 [97]
最后排序结果 13 27 38 49 49 65 76 97


选择排序是不稳定的排序方法。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics