选择排序:
假设变量都定义过
//外循环
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],所以叫冒泡排序!
时间: 2024-10-10 20:25:40