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