#include <stdio.h> /*冒泡排序由小到大 冒泡的中心思想是将前面的数 与其后面的所有数进行比较, 如果其后面有比它大的数,则 两者换位置,所以比较次数为 n*(n-1)/2 */ /*int main() { int n; while(scanf("%d",&n)!=EOF) { int a[100],i,j,p; for(i=0;i<n;i++) //Input scanf("%d",&a[i]); for(i=0;i<n-1;i++) //核心算法 比较 { for(j=i+1;j<n;j++) { if(a[i]>a[j]) //换位 { p=a[i]; a[i]=a[j]; a[j]=p; } } } for(i=0;i<n;i++) //输出 { printf("%d ",a[i]); } printf("\n"); } }*/ /*选择排序 由小至大 选择排序的核心思想是在一个长度为N的 无序数组中,在第一趟遍历N个数据,找 出其中最小的数值与第一个元素交换, 第二趟遍历剩下的N-1个数据,找出其中 最小的数值与第二个元素交换......第 N-1趟遍历剩下的2个数据,找出其中最 小的数值与第N-1个元素交换,至此选 择排序完成。 */ int main() { int n; while(scanf("%d",&n)!=EOF) { int a[100],i,j,min,minval; for(i=0;i<n;i++) //Input scanf("%d",&a[i]); for(i=0;i<n;i++) //核心 { min=i; minval=a[i]; for(j=i+1;j<n;j++) { if(a[j]<minval) { minval=a[j]; min=j; } } a[min]=a[i]; a[i]=minval; } for(i=0;i<n;i++) //输出 { printf("%d ",a[i]); } printf("\n"); } }
冒泡排序和选择排序
猜你喜欢
转载自blog.csdn.net/Pain_Love/article/details/80724598
今日推荐
周排行