冒泡排序和选择排序,我把它编到一起,感觉很有成就感!
#include <stdio.h>
void test(){
//定义一个数组
int arr[]={1,3,67,5,6,34,25,18,96,78};
//计算数组长度
int len = sizeof(arr)/sizeof(int);
//遍历数组
for (int i=0; i<len; i++) {
printf("arr[%d]=%d\t",i,arr[i]);
}
printf("\n");
//提示用户选择冒泡排序or选择排序
printf("请选择排序方式,1冒泡排序 2选择排序:\n");
while (1) {
//定义选择方式
int a;
//接收数据
scanf("%d",&a);
//排序方法
//定义临时变量
int temp;
if(1==a){
printf("冒泡排序法:");
for (int i=0; i<len-1; i++) {
for (int j=0; j<len-1-i; j++) {
if (arr[j]>arr[j+1]) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for (int i=0; i<len; i++) {
printf("%d\t",arr[i]);
}
}else if (2==a){
printf("选择排序法:");
for (int i=0; i<len-1; i++) {
for (int j=i+1; j<len; j++) {
if (arr[i]>arr[j]) {
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for (int i=0; i<len; i++) {
printf("%d\t",arr[i]);
}
}else {
printf("请按要求输入");
}
printf("\n");
}
}
void print(int arr[],int len){
for (int i=0; i<len; i++) {
printf("arr[%d]=%d\t",i,arr[i]);
}
printf("\n");
}
void maoPao(int arr[],int len){
int temp;
for (int i=0; i<len-1; i++) {
for (int j=0; j<len-1-i; j++) {
if (arr[j]>arr[j+1]) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for (int i=0; i<len; i++) {
printf("%d\t",arr[i]);
}
}
void xuanZe(int arr[],int len){
int temp;
for (int i=0; i<len-1; i++) {
for (int j=i+1; j<len; j++) {
if (arr[i]>arr[j]) {
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for (int i=0; i<len; i++) {
printf("%d\t",arr[i]);
}
}
int main(){
//定义一个数组
int arr[]={1,3,67,5,6,34,25,18,96,78};
//计算数组长度
int len = sizeof(arr)/sizeof(int);
print(arr, len);
//提示用户选择冒泡排序or选择排序
printf("请选择排序方式,1冒泡排序 2选择排序:\n");
while (1) {
//定义选择方式
int a;
//接收数据
scanf("%d",&a);
//排序方法
if(1==a){
printf("冒泡排序法:");
maoPao(arr, len);
}else if (2==a){
printf("选择排序法:");
xuanZe(arr, len);
}else {
printf("请按要求输入");
}
printf("\n");
}
return 0;
}
|
|