案例描述:封装一个函数,利用冒泡排序,实现对整型数组的升序排列;
例如数组 int arr [10]={4,3,6,9,1,2,10,8,7,5};
传数组,就要定义指针作为形参来接收这个首地址,
与之前冒泡排序的不同之处是:之所以写这个,就是为了对任意的整型数组都能实现升序排列,而之前写的冒泡排序仅仅是对固定的一个数组写出的特定代码;
void bubbleSort(int *arr,int len);中一个是首地址,一个是该数组的长度;
求数组长度:
int len=sizeof(arr)/sizeof(arr[0]); // 意思就是 数组所占总字节/第一个元素所占字节
具体实现代码:
#include<iostream>
using namespace std;
//冒泡排序函数,参数1 数组的首地址 参数2 数组长度
void bubbleSort(int *arr,int len){
for(int i=0;i<len-1;i++){
for(int j=0;j<len-i-1;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}}
void printArray(int *arr,int len) {
for(int i=0;i<len-1;i++){
cout<<arr[i]<<" "<<endl;
}
}
int main(){
//1.创建数组;
int arr[10]={4,3,6,9,1,2,10,8,7,5};
//数组长度
int len=sizeof(arr)/sizeof(arr[0]);
//创建冒泡排序函数;
bubbleSort(arr,len);// 将数组首地址,长度传入
printArray(arr,len);
return 0;
}
运行结果: