——构造类型
->数组
     ->一维数组
     ->相同类型的一组数据
     ->类型修饰符--数组名—[数组的元素个数(必须是整型表达式或者是整型常量,不能是变量)] {初始化}
    int arr[] = {,,};
arr[] = ;
printf("%d",arr[]);
     ->数组内存的值为变量
     ->使用数组的时候中括号内可以是变量
->sizeof()是一个运算符,不是一个函数,可以计算变量或者变量修饰符占了多少个字节,也可以对数组进行计算占的字节数
    int a[] = {,,};
printf("%ld\n",sizeof(double));
printf("%ld\n",sizeof(char));
printf("%lu",sizeof(a));
     ->数组所占用的内存空间等于数组元素个数*单个元素所占的内存空间.
     
->用循环输出数组比较快
    short arr[] = {,,};
printf("%ld\n",sizeof(arr));
for (int i = ; i < ; i ++) {
printf("%d\t",arr[i]);
}
     ->数组合并
    for (int i = ; i < ; i++) {
int a[] = {}, b[] = {}, c[] = {};
for (int i = ; i < ; i ++) {
a[i] = arc4random() % + ;
b[i] = arc4random() % + ;
c[i] = a[i] + b[i];
if (c[i] == ) {
printf("\na[%d](%d)+ b[%d](%d)= c[%d](%d)",i,a[i],i,b[i],i,c[i]);
}
// printf("\na[%d](%d)+ b[%d](%d)= c[%d](%d)",i,a[i],i,b[i],i,c[i]); }
}
 ->循环输入值,赋值给相应的数组下标

//错误问题:

//数组是一个整体不能够参与运算

//只能取每个元素逐一使用

//随机一个具有20 整型数组  找出数组中最大值
int a[] = {};
int max = ;
for (int i = ; i < ; i++) {
a[i] = arc4random() % ;
printf("%d\t",a[i]);
if (a[i] > max) {
max = a[i];
}
//max = a[i] > max ? a[i]:max;
}
printf("\n最大数:%d",max); int a[] = {};
int min = arc4random() % ;
for (int i = ; i < ; i++) {
a[i] = arc4random() % ;
if (min > a[i]) {
min = a[i];
}
printf("%d ",a[i]);
}
printf("\n最小值:%d",min); int a[] = {};
for (int i = ; i < ; i ++) {
scanf("%d",&a[i]); }
for (int i = ; i < ; i++) {
printf("\t%d",a[i]);
}
——算法
->数组排序
     ->冒泡排序
          ->若有n个元素,则外层循环走n - 1次
          ->内层循环需要, n - 1 - i 次
 
     int arry[] = {};
for (int i = ; i < ; i ++) {
arry[i] = arc4random()% + ;
printf("%d\t",arry[i]);
}
printf("\n");
for (int i = ; i < ; i++) {
for (int j = ; j < - i; j++) {
if (arry[j] > arry[j + ]) {
int temp = arry[j];
arry[j] = arry[j+];
arry[j+] = temp;
}
}
}
for (int i = ; i < ; i++) {
printf("%d\t",arry[i]);
}

View maopao

     ->选择排序
          ->外层循环控制比较趟数,每趟开始的时候假定开始的位置是最小值
          ->内层循环,从后面的一个值开始逐一比较,如果比最小值更小,更新,最小值的          位置.
          ->每趟结束之后如果最小值的位置和假定的最小值位置不一样则交换,一样则不用交换位置.
 
(也就是每趟比较的是下标,交换的也是下标,保证每趟交换之后,下标是最小的,然后再与最初假定的最小下标相比,如果不相同  则交换值)
 
     int arry[] = {};
for (int i = ; i < ; i++) {
arry[i] = arc4random() % ;
printf("%d\t",arry[i]);
}
for (int i = ; i < ; i++) {
int minIndex = i;
for (int j = i + ; j < ; j++) {
if (arry[minIndex] > arry[j]) {
minIndex = j;
} }
if (minIndex != i) {
int temp = arry[i];
arry[i] = arry[minIndex];
arry[minIndex] = temp;
}
}
printf("\n");
for (int i = ; i < ; i++) {
printf("%d\t",arry[i]);
}
—字符数组
     ->数组里也都是变量
     ->%s专门输出字符串
     ->\0 标志字符数组的结束
    //计算字符串数组中的空格数
char a[] = "aslkdj alskf salkjd slkf";
int i = ,sum = ;
while (a[i] != ) {
if (a[i] == ' ') {
sum++;
}
i++;
}
printf("%d",sum); char str[] = "";
//scanf("%s",str );
scanf("%[^\n]",str);
// gets(str);
printf("%s",str);
return ;
->strlen()(无符号长整型)
 
输出时并不考虑\0
->strcpy(后边拷到前边)
     ->最后一个\0会被拷过去
     ->被考入的字符串数组范围必须大于 要拷的字符串范围,不然会越界,虽然还会执行,但是有风险.
->strcat()
     ->两个字符串连到一起
     ->被拼入的字符串内存也要够大,不然会报错
->strcmp()
         ->逐一比较两个字符串相对应的字符的ASCII码值大小,返回值是整型
          ->如果两个字符串相应位置的ASCII码的差值不是零,则返回差值,也会是负数
->计算字符数组中空格数
->输入字符串
     ->scanf遇到空格默认是结束
     ->输出格式改为:”%[^\n]” 除了空格都要
     //字符数组
//char arry[10] = {'m','a','o','m','a','o','h','h'};
// char arr[10] = {"maomaohehe"};
// printf("%c",arry[7]);
// arry[3] = 0;
// char arry1[] = "hello";//系统会自动补一个\0
//// char arry3[] = {'h' , 'e', 'l', 'l', 'o'};
// char arry2[] = {'h' , 'e', 'l', 'l', 'o'};//这中方法系统不会补\0 如果用printf("%s\n",arry2);输出 系统不会停止,除非遇到\0
// printf("%s\n",arry2); //printf("%s",arry);
//
// char string[] = "i love iOS!";
// unsigned long length = strlen(string);
// printf("%lu",length); // char string[] = "iloveiOS";
// int i = 0;
// while (string[i] != 0) {
// i++;
// }
// printf("%d",i); // char arry1[20] = "aaaaaaaa";
// char arry2[10] = "iphone";
//// strcpy(arry1, arry2);
//// printf("%s",arry1);
//// strcat(arry1, arry2);
//
// int result = strcmp(arry1, arry2);
// //printf("%s",arry1);
// printf("%d",result);

C-冒泡排序,选择排序,数组的更多相关文章

  1. 09-java学习-数组-冒泡排序-选择排序-数组工具类编写-查找-扩容

    数组的排序算法 查找算法 数组协助类Arrays的学习和使用 数组的扩容

  2. 归并排序 & 计数排序 & 基数排序 & 冒泡排序 & 选择排序 ----> 内部排序性能比较

    2.3 归并排序 接口定义: int merge(void* data, int esize, int lpos, int dpos, int rpos, int (*compare)(const v ...

  3. 学习C#之旅 冒泡排序,选择排序,插入排序,希尔排序[资料收集]

    关于冒泡排序,选择排序,插入排序,希尔排序[资料收集]  以下资料来源与网络 冒泡排序:从后到前(或者从前到后)相邻的两个两两进行比较,不满足要求就位置进行交换,一轮下来选择出一个最小(或最大)的放到 ...

  4. C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序

    C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序 以下列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序 ...

  5. C语言实现 冒泡排序 选择排序 希尔排序

    // 冒泡排序 // 选择排序 // 希尔排序 // 快速排序 // 递归排序 // 堆排序 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h& ...

  6. python算法(一)基本知识&冒泡排序&选择排序&插入排序

    本节内容: 算法基本知识 冒泡排序 选择排序 插入排序 1. 算法基本知识 1.1 什么是算法? 算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为 ...

  7. 【数组】—冒泡排序&&选择排序---【巷子】

    /* 什么是冒泡排序:从头到尾比较相邻的两个数的大小,如果符合条件则进行比较 [注]:从小到大进行排序 假设有一个数组 var arr = [9,8,7,6,5,4]; 我们想要进行这个数组进行排序那 ...

  8. 冒泡排序 & 选择排序 & 插入排序 & 希尔排序 JavaScript 实现

    之前用 JavaScript 写过 快速排序 和 归并排序,本文聊聊四个基础排序算法.(本文默认排序结果都是从小到大) 冒泡排序 冒泡排序每次循环结束会将最大的元素 "冒泡" 到最 ...

  9. php基础排序算法 冒泡排序 选择排序 插入排序 归并排序 快速排序

    <?php$arr=array(12,25,56,1,75,13,58,99,22);//冒泡排序function sortnum($arr){    $num=count($arr);    ...

  10. 数组排序-冒泡排序-选择排序-插入排序-希尔排序-快速排序-Java实现

    这五种排序算法难度依次增加. 冒泡排序: 第一次将数组相邻两个元素依次比较,然后将大的元素往后移,像冒泡一样,最终最大的元素被移到数组的最末尾. 第二次将数组的前n-1个元素取出,然后相邻两个元素依次 ...

随机推荐

  1. source insight3.5中文乱码解决方案

    source insight3.5中文乱码,网上看别人说改变宽字体.宋体等方法都不起效.根本原因是,source insight 3.5 不支持Unicode编码,所以导致中文的乱码,将文件转为gb2 ...

  2. getClass 与getSimpleName

    //首先定义一个借口 package com.test; public interface Fruit { } //定义一个实现类 package com.test; public class App ...

  3. JS跨域请求之JSONP

    在项目开发中遇到跨域的问题,一般都是通过JSONP来解决的.但是JSONP到底是个什么东西呢,实现的原理又是什么呢.在项目的空闲时间可以好好的来研究一下了. JSONP的产生 1.众所周知,Ajax请 ...

  4. F# 可以把几个函数组合成新函数

    C#能做的,F#基本都能做,但F#能做的,C#未必能做. F#中的函数可以把几个函数组合起来使用.下面的例子是把由 function1 和 function2 这两个函数通过运算符“>>” ...

  5. JS客户端读取Excel文件插件js-xls使用方法

    js-xls是一款客户端读取Excel的插件,亲测IE11.FireFox.Chrome可用,读取速度也客观. 插件Demo地址:http://oss.sheetjs.com/js-xlsx/    ...

  6. iOS_SN_百度地图基本使用(1)

    上次用了一次百度地图,一直没有记笔记,今天记一笔. 以前没有用过百度地图的时候,听做这方面的朋友说百度地图有不少的坑,但是我做的时候没有遇到太大的坑,主要是要注意官方文档的注意事项,还有配置环境开发中 ...

  7. PL/SQL Developer主界面窗口左边窗口默认设置

    中文版:在菜单 工具 -> 首选项 -> 用户界面 -> 选项 窗口中,将“自动保存桌面”勾选上就可以了. 截图如下: 英文版:在菜单 Tools -> Preferences ...

  8. 使用CSS3+jquery.js 实现微信抽奖转盘效果

    上次发表了一篇 微信抽奖转盘活动-效果源码分析 最近想起了刚接到这个项目时第一时间脑海里迸出的解决方法 “CSS3”! 为什么不能用CSS3来实现呢? 所以我打算用CSS3来实现这个效果.并不需要依赖 ...

  9. Thinkphp join 连接查询

    public function test ( ) { $User = M('authlist'); $rs = $User->join('left join wifi_shop on wifi_ ...

  10. LINUX VPS 查看系统信息命令

    系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostna ...