//直接选择排序 #include<stdio.h> void SelectionSort(int arr[],int len) { int i,j; int k,min; int temp; for(i=0;i<len-1;i++) { min=arr[i]; //每趟排序都把无序区第一个数设置为最小 k=i; for(j=i+1;j<len;j++) { if(arr[j]<min) { min=arr[j]; k=j; //记录下此次最小数索引 } } if(k!=i) //如果上面的if执行过 { //交换 temp=arr[k]; arr[k]=arr[i]; arr[i]=temp; } } for(i=0;i<len;i++) printf("%d ",arr[i]); } int main() { int a[10]={0,1,7,2,5,4,3,6,8,9}; SelectionSort(a,10); return 0; }
//冒泡排序 void BubbleSort(int arr[],int len) { int i,j; int sign,temp; for(i=0;i<len;i++) { sign=0; for(j=len-1;j>i;j--) //从最后一个开始交换 { if(arr[j]<arr[j-1]) //如果后面的数小,则交换 { temp=arr[j]; arr[j]=arr[j-1]; arr[j-1]=temp; sign=1; } } if(0==sign) break; } for(i=0;i<len;i++) printf("%d ",arr[i]); } int main() { int a[10]={0,1,7,2,5,4,3,6,8,9}; BubbleSort(a,10); return 0; }