问题及代码:
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:Project4.cpp
* 作 者:宋健
* 完成日期:2014年11月25日
* 版 本 号:v1.0
*
* 问题描述:冒泡排序
* 输入描述:
* 程序输出:
*/
#include <iostream>
using namespace std;
void bubble_sort(char arr[],int n);
void output_array(char arr[],int n);//两个函数bubble_sort和output_array的声明
int main( )
{
char a[20]= {'s','o','r','t','b','u','b','b','l','e','s','e','l','e','c','t','o','k','o','k'};
char b[15]= {'u','b','b','l','e','s','e','l','e','c','t','o','k','o','k'};
bubble_sort(a,20); //用冒泡法按降序排序a中元素
output_array(a,20); //输出排序后的数组
bubble_sort(b,15); //用冒泡法按降序排序b中元素
output_array(b,15); //输出排序后的数组
return 0;
}
//请在下面定义bubble_sort和output_array函数
void bubble_sort(char arr[],int n)
{
int i,j,m;
m=0;
for(i=0; i<n-1; i++)
{
for(j=0; j<n-1-i; j++)
{
while(arr[j]<arr[j+1])
{
m=arr[j];
arr[j]=arr[j+1];
arr[j+1]=m;
}
}
}
}
void output_array(char arr[],int n)
{
int i;
for(i=0; i<n; i++)
cout<<arr[i]<<" ";
cout<<endl;
}
运行结果:
知识点总结:
跟排数字变化不大,只是将数据类型改了,字母排序根据ASC码
学习心得:
只要掌握了方法,类似的问题就能够全部掌握了,还是需要多练习