选择排序和冒泡排序的C++和C
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C选择排序:
#include
#define N 10
main()
{int i,j,min,key,a[N];
//input data
printf("please input ten num:\n");
for(i=0;i { printf("a[%d]=",i); scanf("%d\t",&a[i]);} for(i=0;i { printf("%d\t",a[i]); } /*sort ten num*/ for(i=0;i { min=i; for(j=1;j { if(a[min]>a[j]) {min=j;//记下最小元素的下标。 /*********交换元素*********/ key=a[i]; a[i]=a[min]; a[min]=key;} else continue; } } /*output data*/ printf("After sorted \n"); for(i=0;i system("PAUSE"); return 0; } C冒泡排序: #include"stdafx.h" #include #include using namespace std; #define n 4 int _tmain(int argc, _TCHAR* argv[]) { int x[n],i=0; printf("请输入%d个整数:\n",n); for(i=0;i { scanf_s("%d ",&x[i]); ++i; } int j, k, h, t; for (h=n-1; h>0; h=k) /*循环到没有比较范围*/ { for (j=0,k=0;j { if (*(x+j)>*(x+j+1)) /*大的放在后面,小的放到前面*/ { t = *(x+j); *(x+j) = *(x+j+1); *(x+j+1) = t; /*完成交换*/ k = j; /*保存最后下沉的位置。这样k后面的都是排序排好了的。*/ } } } printf("\n排序后的顺序为:\n"); for(i=0;i printf("%d\t",x[i]); system("PAUSE"); return 0; } C++选择排序: #include using namespace std; int main() { int num[10] = {9,8,10,3,4,6,4,7,2,1}; int m; cout<<"排序前:"< for (m=0;m<10;m++) { cout< } for (int i=0;i < 10;i++) { int pos = i; for (int j=i;j< 10;j++) { if (num[pos] > num[j]) { pos =j; } } int tem; tem = num[pos]; num[pos] = num[i]; num[i] = tem; } cout< for (int m = 0;m<10;m++) { cout< } system("PAUSE"); return 0; } /*选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换.*/ C++冒泡排序: #include"stdafx.h" #include #include using namespace std; #define LEN 10 int _tmain(int argc, _TCHAR* argv[]) { int nArray[LEN]; for(int i=0;i cout<<"原始数据为:"< for(int i=0;i cout< cout< //开始冒泡 int temp; for(int i=LEN-1;i>0;i--) for(int j=0;j { if(nArray[j]>nArray[j+1]) { temp=nArray[j]; nArray[j]=nArray[j+1]; nArray[j+1]=temp; } } //结束冒泡 cout<<"排序结果:"< for(int i=0;i system("PAUSE"); return 0; }