选择排序和冒泡排序的最大区别在于 冒泡排序每比较一次就交换一次值 选择排序每比较一轮交换一次值 希望大家都能理解并记住 #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]); } }
|