一维数组 10.7 (冒泡排序+选择大小)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档



一、数组

一个篮子 10个苹果 也有类型之分
size=sizeof(array) /sizeof(array[0]) ;关键字 可以计算出大小

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>

int main() {
    int  a[] = {1,2,3,4,5,6,7,8,9,10 };
    int i;
    for (i = 9; i >= 0; i--)
    {
        printf(" %d ",a[i]);
    }

    return 0;
}   

斐波拉契数列
自己写的时候发现遇到了数组越界的原因`

int a[]={0,1,2}  要给数组长度
需要用sizeof求取数组长度—>for循环里 给限定条件
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>
int main() {
    int a[30] = { 0, 1, };
    int i;
    int size;
    size=sizeof(a) / sizeof(a[0]);
    for (i = 2; i<size; i++)
    {
        a[i] = a[i - 2] + a[i - 1];
        
    }
    for (i = 0; i < size; i++)
    {
        printf("%d ", a[i]);
    }
    return 0; 
}   

二、冒泡排序法(值得单开一条 自从接触编程已经学了一百次了有)

1原理:

一个数组里面有10个数 那么就是第一个和第二个比较 假设第一个大于第二个 那么就交换一下二者顺序(所以需要中间变量temp)  就可以向冒泡泡一样 将大的数目逐一浮上去  

2.

代码如下(示例):

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>

int main() {
	int array[10] = { 1,20,30,23,12,45,43,345,10 };
	int i;
	int j;
	int size = sizeof(array) / sizeof(array[0]);
	int temp;
	for (i = 0; i < (size - 1); i++)
	{
		for (j = 0; j < (size - i-1); j++)
		{			
			if (array[j] > array[j + 1])
			{			
				temp = array[j];
				array[j] = array[j+1];
				array[j+ 1] = temp;
			}			
		}
	}
	for (i = 0; i <size ; i++)
	{
		printf("%d ", array[i]);
		printf("\n");
	}		
		return 0;
}   

选择大小

原理:

一个数组 里面包含很多数字 逐一比较数字
这种排序实现方式 现在基本完全可以靠自己分析出来 以前多少得查一下csdn看看人家逻辑是怎么写的 也算是对得起当年死磕这些个逻辑 希望后面的学习更加顺利!

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>

int main() {
    int array[5] = { 1,7,3,4,5 };
    int i;
    int temp;
    int j;
    int size = sizeof(array) / sizeof(array[0]);
    for (i = 0; i < size - 1; i++)
    {
        for (j = i; j <size - 1; j++) 
        {
            if(array[i]< array[j + 1])
            {
                temp = array[i];
                array[i] = array[j+ 1];
                array[j+ 1] = temp;
            }
        }
       
    }
 for (i = 0; i < size; i++)
        {
            printf("%d ", array[i]);
            printf("\n");
        }
    return  0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值