《选择排序和冒泡排序的C和C的实现(总结).doc》由会员分享,可在线阅读,更多相关《选择排序和冒泡排序的C和C的实现(总结).doc(3页珍藏版)》请在金锄头文库上搜索。
1、C选择排序:#include #define N 10 main() int i,j,min,tmp,aN; /*input data*/ printf(please input ten num:n); for(i=0;iN;i+) printf(a%d=,i); scanf(%d,&ai); printf(n); for(i=0;iN;i+) printf(%d;,ai); printf(n); /*sort ten num*/ for(i=0;iN-1;i+) min = i; for(j+1; jaj) min =j; /记下最小元素的下标。 /*交换元素*/ key = ai; ai
2、= amin; amin = key; /*output data*/ printf(After sorted n); for(i=0;iN;i+) printf(%d;,ai); C冒泡排序:#define n 10void main() int xn,i; printf(请输入%d个整数:,n); for(i=0;i0; h=k) /*循环到没有比较范围*/ for (j=0, k=0; j *(x+j+1) /*大的放在后面,小的放到前面*/ t = *(x+j); *(x+j) = *(x+j+1); *(x+j+1) = t; /*完成交换*/ k = j; /*保存最后下沉的位置。
3、这样k后面的都是排序排好了的。*/ printf(n排序后的顺序为:n); for(i=0;in;i+) printf(%d ,xi);C+选择排序:#includeusing namespace std; int main() int num10 = 9,8,10,3,4,6,4,7,2,1; cout排序前:endl; for (int m = 0;m 10;m+) coutnumm ; for (int i = 0;i 10;i+) int pos = i; for (int j = i;j numj) pos = j; int tem; tem = numpos; numpos = n
4、umi; numi = tem; coutendl排序后:endl; for (int m = 0;m 10;m+) coutnumm ; return 0; /*选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换.*/C+冒泡排序:#include #define LEN 10 using namespace std; int main() int nArrayLEN; for(int i=0;iLEN;i+) nArrayi=LEN-i; cout原始数据为:endl; for(int i=0;iLEN;i+) coutnArrayi ; cout0;i-) for(int j=0;jnArrayj+1) temp=nArrayj; nArrayj=nArrayj+1; nArrayj+1=temp; /结束冒泡 cout排序结果:endl; for(int i=0;iLEN;i+)coutnArrayi ; return 0;