黑马程序员技术交流社区
标题:
冒泡排序和选择排序
[打印本页]
作者:
尾尾
时间:
2015-9-28 21:34
标题:
冒泡排序和选择排序
//数组思考练习
//int arr[6]={1,2,4,3,8,5};
//1编写一个函数求这个数组的最值
//2给这个数组从大到小排序
#include<stdio.h>
int max(int a[],int n); //获取数组的最大值 max(数组 数组长度)
int bubbleSort(int b[],int m); //冒泡排序 bubbleSort(数组 数组长度)
int selectSort(int c[],int n); //选择排序 selectSort(数组 数组长度)
int main(){
int arr[6]={1,2,4,3,8,5};
int len=sizeof(arr)/sizeof(int);
max(arr,len);
bubbleSort(arr,len);
int arr2[9]={1,2,4,3,8,5,6,7,9};
int len2=sizeof(arr2)/sizeof(int);
selectSort(arr2,len2);
return 0;
}
int max(int a[],int n){//求数组的最大值
int max=0;//用来存最大值
for (int i=0; i<n; i++) {
if (a[i]>max) {//若当前值大于max,则将其赋值给max
max=a[i];
}
}
printf("最大值是%d\n",max);
return 0;
}
int bubbleSort(int b[],int m){//冒泡排序
int tem=0;
printf("排序前:\n");
for (int j=0; j<m; j++) {
printf("%d\t",b[j]);
}
printf("\n");
for (int i=0; i<m; i++) {
for (int j=m-1; j>i; j--) {
if (b[j]>b[j-1]) {
tem=b[j];
b[j]=b[j-1];
b[j-1]=tem;
}
}
}
printf("冒泡排序后:\n");
for (int j=0; j<m; j++) {
printf("%d\t",b[j]);
}
printf("\n");
return 0;
}
int selectSort(int c[],int n){//选择排序
int tem;
int num;
printf("排序前:\n");
for (int j=0; j<n; j++) {
printf("%d\t",c[j]);
}
printf("\n");
printf("选择排序后:\n");
for (int i=0; i<n; i++) {
tem=c[i];
for (int j=n-1; j>i; j--) {
if (c[j]>tem) {//若当前值大于tem,则将其赋值给tem
tem=c[j];
c[j]=c[i];
c[i]=tem;
}
}
}
for (int k=0; k<n; k++) {
printf("%d\t",c[k]);
}
printf("\n");
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2