首页 > 代码库 > 选择排序与冒泡排序的区别

选择排序与冒泡排序的区别

选择排序:

假设变量都定义过

//外循环

for(k=0;k<n-1;k++){                         //n是输入的数组中元素的个数,显示假设a[index]最小,0<k<n-1 

  index=k;//设初值为0

  for(i=k+1;i<n;i++){        //内循环

    if(a[i]<a[index])                       //又假设a[i]是最小值

    index=i;

  }

  temp=a[index];

  a[index]=a[k];

  a[k]=temp;

}

这里是个双重循环,内循环第一次循环n-1次找出数组中最小的值,出来后将最小值与a[k=0]交换,

第二次k=1循环n-K-1次,在a[1]~a[n-1]中找出最小值在交换给a[1]。以此类推,完成排序!

冒牌排序比较好理解一些:每次都相邻两个交换(真),每次内循环完成时最大值推=a[n-1],所以叫冒泡排序!

选择排序与冒泡排序的区别