黑马程序员技术交流社区
标题: 分享一下选择排序 [打印本页]
作者: 张水 时间: 2015-10-27 21:59
标题: 分享一下选择排序
选择排序和冒泡排序的最大区别在于
冒泡排序每比较一次就交换一次值
选择排序每比较一轮交换一次值
希望大家都能理解并记住
#include <stdio.h>
int main()
{
//要排序的数组
int a[] = {1,2,4,3,8,5};
//最大值的脚标
int tempIndexMax = 0;
for(int i = 0; i<5 ; i++)//第几轮排序
{
int tempIndexMax = i;
for(int j = i+1; j<6;j++)//当前这轮排序的具体实现
{
if(a[tempIndexMax]<a[j])//a[j]是否大于先前的"最大值"
{
tempIndexMax=j; //如果a[j]大于先前"最大值",改变"最大值的脚标"
}
}
//输出每轮排序的最大值脚标
printf("第%d轮排序的最大值脚标是%d\n",i,tempIndexMax);
//把找到的最大值和之前的最大值互换
int temp = a;
a=a[tempIndexMax];
a[tempIndexMax] = temp;
}
for(int k = 0; k<6 ;k++)
{
printf("%d\t",a[k]);
}
}
作者: jazzforlove 时间: 2015-10-27 22:07
好好学习,天天向上
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |