数组(4)
int mid = min + (key - arr[min]) / (arr[max] - arr[min]) * (max - min);
17.数组常见算法4 分块查找
18.数组常见算法5 冒泡排序
笔记
小程序错误
#include<stdio.h>
int main()
{/*冒泡排序:1.相邻的元素两两比较,大的放右边,小的放左边2.第一轮比较完毕之后,最大值就已经确定,第二轮可以少循环一次,后面依次类推3.如果数组中有n个数据,总共我们只要执行n-1轮的代码就可以需求:利用冒泡排序将下列数据按照从大到小的顺序进行排序3,5,2,1,4*///1.定义数组存储数据int arr[] = { 3,5,2,1,4 };int len = sizeof(arr) / sizeof(int);//2.利用冒泡排序,把数组中的数据按照升序排列//第一轮:for (int i = 0; i < len; i++){//相邻的元素两两比较,小的在前面,大的后面if (arr[i] > arr[i + 1]){int temp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = temp;}}//遍历for (int i = 0; i < len; i++){printf("%d", arr[i]);}return 0;}
19.数组常见算法6 选择排序
小程序
#include <stdio.h>
int main()
{/*选择排序:1.从0索引开始,跟后面的元素一一比较2.小的放前面,大的放后面3.第一轮循环从0索引开始比较,结束后最小的数据已经确定4.第二轮循环从1索引开始,后面依次类推5.第三轮循环从2索引开始,后面依次类推6.第四轮循环从3索引开始,后面依次类推需求:利用选择排序将下列数据按照从小到大的顺序进行排序3,5,2,1,4*///1.定义数组存储元素int arr[] = { 3,5,2,1,4 };int len = sizeof(arr) / sizeof(int);//2.利用选择排序,将数组中的数据按照升序进行排列for (int i = 0; i < len - 1; i++){//i.依次表示数组中的每一个索引//第一轮: i =0 j=1 2 3 4//第二轮: i=1 j=2 3 4//第三轮: i=2 j=3 4//第四轮: i=3 j=4for (int j = i + 1; j < len; j++){//j:依次表示i索引后面的每一个索引if (arr[i] > arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}//遍历for (int i = 0; i < len; i++){printf("%d ", arr[i]);}return 0;}