数组的详细使用及冒泡排序方法
来源:互联网 发布:便宜好用的粉底液 知乎 编辑:程序博客网 时间:2024/06/05 09:24
1、数组初始化的方法(赋值方法)
1)先定义数组,再赋值例:
int arr[3];arr[0] = 10;arr[1] = 15;arr[2] = 14;
解释:因为数组中实际存储数据的实际是内存中的每个小空间,所以应该是给小空间里赋值,那么数组里也许有多个小空间,怎么确定给哪个 小空间赋值呢?就是通过数组的下标来赋值。所以上面的方法是给小空间一个一个地赋值
2)定义数组的同时初始化(赋值)
A、完全初始化
int nums[5] = { 1, 2, 3, 4, 5 };
B、不完全初始化,没有提供数据的默认初始化为0
int nums[10] = { 1, 2, 3, 4, 5 };
C、省略数组长度,由编译器自动判断
int nums[] = { 1, 2, 3, 4, 5 };
D、指定元素个数,同时给指定元素进行初始化
int nums[5] = {[4] = 3,[1] = 2};
解释:以上三种方法都是在数组申明时直接按顺序给每个小空间赋值数据。
其他注意:不管是先定义数组,还是数组定义并初始化。只要数组一经定义,里面就有值,里面默认的值都为0(如果是字符型数组,那么就是ascii 码中0所对应的字符'\0'即为空)
2、引用元素
什么叫引用元素:
引用数组元素表示使用数组中的每一个变量
用法: 使用下标引用数组中指定的变量
语法:
数组名[ 下标 ]
例如:
int nums[] = { 1, 2, 3 };
printf("%d\n", nums[0]);
printf("%d\n", nums[1]);
printf("%d\n", nums[2]);
引用数组元素和使用指定类型变量一样,可以读取数据赋值等
1)读取数据
2)获取数据(打印,计算)
3)自增等
3、遍历数组元素
遍历的意思:就是访问每一个元素使用 for 循环对数组进行遍历
for (int i = 0; i < length; i++) {
printf("%d\n", nums[i] );
}
冒泡排序:
冒泡排序是指相邻的两个数进行比较,将小数放前面,大数放后面。最终排序结果呈从小到大排列。就像生活中沸腾的水,气泡由小变到大,因此也称为冒泡排序!(有些书籍或者有些人也将冒泡排序称之为从大到小排列,其实核心思想都一样,只要符合核心思想的都叫冒泡排序)
如:有五个数
5 4 3 2 1
现需要用冒泡排序法将其从小到大排列
分析:
第0轮:4 5 3 2 1
4 3 5 2 1
4 3 2 5 1
4 3 2 1 5
比较4次
第1轮:3 4 2 1 5
3 2 4 1 5
3 2 1 4 5
比较3次
第2轮:2 3 1 4 5
2 1 3 4 5
比较2次
第3轮:1 2 3 4 5
比较1次
一共比较了多少轮? = 长度-1-1
每轮比较的次数 = 长度 - 轮数 - 1
代码实现:
#include <stdio.h>
int main(int argc,const char * argv[]) {
// int nums[] = {10,9,8,7,6,5,4,3,2,1};
int nums[] = {5,4,3,2,1};
int len = sizeof(nums) /sizeof(int);
for (int i=0; i<len; i++) {
printf("%d\n",nums[i]);
}
printf("-------以上是交换之前--------\n");
for (int i=0; i<= len-1-1; i++) {//相当于 i<=3 i= 0,1,2,3
for (int j=0; j<len-i-1; j++) {//相当于 j<=5-0-1; j<4 0 1 2 3
if(nums[j] > nums[j+1] ){//如果当前遍历到的数字>下一个数字
int temp = nums[j];
nums[j] = nums[j+1];//把j的位置,变成了下一个位置的元素
nums[j+1] = temp;//把下一个位置的元素变成了J的元素
}
}
}
for (int i=0; i<len; i++) {
printf("%d\n",nums[i]);
}
return 0;
}
- 数组的详细使用及冒泡排序方法
- 数组的冒泡排序及拷贝
- 数组补充 及二位数组 排序方法 冒泡
- shell 冒泡排序 数组的使用
- 冒泡排序的原理及方法
- 数组冒泡排序的代码及其详细剖析
- 冒泡排序的C++实现及随机数组的产生方法
- 二维数组及冒泡排序
- 数组的冒泡排序
- 数组的冒泡排序.
- 数组的冒泡排序
- 数组的冒泡排序
- 数组的冒泡排序
- 数组的冒泡排序
- 数组的冒泡排序
- JAVA 数组的排序方法冒泡、选择、快速、数组递增
- JAVA 数组的排序方法冒泡、选择、快速、数组递增
- 对字符串数组进行排序,在冒泡法排序中使用compareTo()方法确定排序的顺序。
- Android 百度地图SDK v_3_4_0学习笔记(一)环境搭建
- Effective C++读书笔记-----条款20:宁以pass-by-reference-to-const替换pass-by-value
- Jackson2笔记
- C语言中#,##和#@
- hdu5534 Partial Tree 完全背包
- 数组的详细使用及冒泡排序方法
- 求生之路2升级补丁及完整版下载
- ng 第六讲
- springMVC 探索其运行流程(一)
- 关于我的CSDN
- SLAM 三维传感器 点滴
- vs2013 c++智能提示不选中
- Android背景选择器selector
- iOS设置applicationIconBadgeNumber和消息推送