因为碰到了一些题目 故此来做总结
一维数组
| 最常用的冒泡排序: |
| #include<stdio.h> |
| void sort(int arr[],int n){ |
| |
| for (int i = 0; i < n-1; ++i) { |
| int flag=1; |
| |
| for (int j = 0; j < n-1-i; ++j) { |
| |
| |
| if(arr[j]>arr[j+1]){ |
| int tem=arr[j]; |
| arr[j]=arr[j+1]; |
| arr[j+1]=tem; |
| |
| flag=0; |
| } |
| } |
| if(flag==1){ |
| break; |
| } |
| } |
| } |
| 选择排序: |
| void SelectSort(int arr[], int n) |
| { |
| for (int i = 0; i < n - 1; i++) |
| { |
| for (int j = i + 1; j < n; j++) |
| { |
| if (arr[i] > arr[j]) |
| { |
| int temp = arr[i]; |
| arr[i] = arr[j]; |
| arr[j] = temp; |
| } |
| } |
| } |
| } |
| 插入排序: |
| void InsertSort(int arr[], int n) { |
| for (int i = 1; i < n; i++) { |
| int key = arr[i]; |
| int j = i - 1; |
| |
| while (j >= 0 && arr[j] > key) { |
| arr[j + 1] = arr[j]; |
| j--; |
| } |
| arr[j + 1] = key; |
| } |
| } |
二维数组
只需要记住一种 因为之前死记硬背住了冒泡排序
思想就是 二维数组可以当成一维数组 也应用一维数组的冒泡排序
那就关键是两点:
一.n遍历一维数组的大小是啥 当然就是二维数组连续存储的特性 n就是行号*列号
- 一维数组数= sizeof(array)/sizeof(array[0]);
- 二维数组行数 = sizeof(array)/sizeof(array[0]);
- 二维数组列数 = sizeof(array[0])/sizeof(array[0][0]);
二.那一维数组咋接受二维数组啊 这里就需要用指针来接受 然后通过指针移动来比较访问
| #include <stdio.h> |
| void sort(int *p, int n) |
| { |
| |
| for (int i = 0; i < n - 1; ++i) |
| { |
| int flag = 1; |
| |
| for (int j = 0; j < n - 1 - i; ++j) |
| { |
| |
| |
| if (*(p + j) > *(p + j + 1)) |
| { |
| int *tem = *(p + j); |
| *(p + j) = *(p + j + 1); |
| *(p + j + 1) = tem; |
| |
| flag = 0; |
| } |
| } |
| if (flag == 1) |
| { |
| break; |
| } |
| } |
| |
| |
| |
| } |
| void main() |
| { |
| int arr[2][3] = {30, 10, 76, 4, 22, 17}; |
| int a = sizeof(arr) / sizeof(arr[0]); |
| int b = sizeof(arr[0]) / sizeof(arr[0][0]); |
| sort(arr, a * b); |
| for (int i = 0; i < a; i++) |
| { |
| for (int j = 0; j < b; j++) |
| { |
| printf("%d ", arr[i][j]); |
| } |
| } |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?