本文仅为学习笔记,不做详细讲解。
#include <stdio.h> //冒泡排序 //int arr[10]={6,1,3,4,2,5,7,8,9,0} /* 外层循环每次共计循环n-1次 内层循环每次以当前位置和下一个位置的元素对比如果不符合条件就调换位置,直到排序完成 每次循环都要遍历整个arr。 */ void maopao(){ int arr[10]={6,1,3,4,2,5,7,8,9,0}; for(int i=0;i<9;i++){ for(int j=0;j<10-i-1;j++){ if(arr[j]>arr[j+1]){ int temp; temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } for(int k=0;k<10;k++){ printf("%d",arr[k]); } } //选择排序 //int arr[10]={6,1,3,4,2,5,7,8,9,0} /* 外层循环共计循环n-1次 内层循环每次都要外层循环当前位置之后的最小值,然后将最小值放在外层循环的当前位置。 */ void select(){ int arr[10]={6,1,3,4,2,5,7,8,9,0}; for(int i=0;i<10;i++){ int minIndex=i; int min=arr[i]; for(int j=i+1;j<10;j++){ if(min>arr[j]){ minIndex=j; min=arr[j]; } } arr[minIndex]=arr[i]; arr[i]=min; } for(int k=0;k<10;k++){ printf("%d",arr[k]); } } //简单选择排序 //int arr[10]={6,1,3,4,2,5,7,8,9,0} /* 外层循环共计进行arr[n] n-1次 内层循环以当前外层循环的值为参照,如果小于外层循环的值则交换两者位置。 */ void easySelect(){ int arr[10]={6,1,3,4,2,5,7,8,9,0}; for(int i=0;i<9;i++){ for(int j=0;j<10;j++){ if(arr[i]<arr[j]){ int temp; temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } for(int k=0;k<10;k++){ printf("%d",arr[k]); } } void main(){ //maopao(); //select(); //easySelect }
发表评论