算法:冒泡排序的c++实现
还记得之前的噩梦吗?又还记得吗?今天,他们即将合为一体。。。。。。
/1.知识点复习/
//包含头文件
//覆盖命名空间
using namespace std;
//主函数,程序的人口
int main(void){
//随机数
srand(time(0));
int num = rand()%100;
//定义变量,类型int,名称guess
int guess;
//主循环,while
//while格式:whlie(条件){}
while (guess != num){
//cout输出
cout << "。。。";
//cin输入
cin >> guess;
//if语句的嵌套
if (guess > num){
cout << "。。。";
}else{
if (guess < num){
cout << "。。。";
};
};
};
cout << "。。。";
//返回值
return 0;
}
/2.数组和for循环/
接下来就是新知识点了,记得做好笔记!
1.数组的定义
我们在python当中有一个数据类型list列表,其实他就是数组的升级版:数组就是只可以储存一种数据类型的list,它的定义方式是:
//type name[length] = {content};
int list[5] = {1,2,3,4,5};
在上面的示例中,我们便定义了一个长度为5,储存类型为int的list数组。
那么该怎样输出整个数组呢?有人会说:“直接输出数组名不就好了?”,我们来试试:
cout << list
//output : 0x22fe30
这恐怕不是你想要的输出,那这又是什么意思呢?
其实我们可以和python一样用索引(下标)来控制访问数组的某个元素,和python一样,也是从零开始的:
cout << list[0];
//output :1
如果要输出所有值怎么办呢,这就要用到下一个知识点了。
2.for循环
没错,如果要输出所有值就一定要用到for,那么for循环的格式又是怎样的呢?
//for(init;rule;update){}
for(int n=0;n<10;n++){
content;
};
它的结构有点复杂,我们一个个看:
init:初始化条件,在进入循环时执行一次。
rule:运行条件,在达成时运行。
update:更新条件,每次continue时执行。
其实本质就是加了init和update的while循环。
所以如果要输出所有数组值的话,就该这么写:
for(int a=0;a<5;a++)
cout << list[a];
这里我们见到了一个新语句:a++,这其实就是自增操作。
/3.冒泡排序/
python代码:
def bubble(list_1):
lenth = len(list_1)
list_ = list_1[::1]#排序方式
for i in range(lenth-1):#用于确定回合数
for j in range(lenth-1-i):#用于确定天平位置
if list_[j] > list_[j+1]:
list_[j],list_[j+1] = list_[j+1],list_[j]
return list_
bubble([8,6,7,5,7,6,0,9,1,3,2,4,3,5,6])
c++代码:
using namespace std;
int main(){
int k[4] = {8,9,5,6};
for (int i = 0;i<4;i++){
for (int j=0;j<4;j++){
if (k[j]>k[j+1]){
int temp = k[j];
k[j] = k[j+1];
k[j+1] = temp;
};
};
};
for(int a=0;a<4;a++)
cout << k[a];
return 0;
}
今天你学废了吗