vlambda博客
学习文章列表

算法:冒泡排序的c++实现

    还记得之前的噩梦吗?又还记得吗?今天,他们即将合为一体。。。。。。


/1.知识点复习/

    

//包含头文件#include<iostream>#include<cstdlib>#include<ctime>
//覆盖命名空间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

    如果要输出所有值怎么办呢,这就要用到下一个知识点了。算法:冒泡排序的c++实现


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++代码:

#include<iostream>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;}


今天你学废了吗