当前位置:网站首页>选择排序和冒泡排序
选择排序和冒泡排序
2022-07-05 14:30:00 【老鱼37】
首先开始将的是选择排序:
整体实现思想:
完整代码:
void Swap(int* a, int* b)
{
int t = *a;
*a = *b;
*b = t;
}
//直接选择排序
void SelectSort(int* arr, int len)
{
int begin = 0;
int end = len - 1;
while (begin < end)
{
int mini = begin;
int maxi = begin;
for (int i = begin + 1; i <= end; i++)
{
if (arr[i] < arr[mini])
{
mini = i;
}
if (arr[i] > arr[maxi])
{
maxi = i;
}
}
//找到最小值和最大值的下标了
// 进行交换
Swap(&arr[begin], &arr[mini]);
if (begin ==maxi)
{
maxi = mini;
}
Swap(&arr[end], &arr[maxi]);
--end;
++begin;
}
}
void PrintSort(int* arr, int len)
{
for (int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
}
int main()
{
int arr[] = { 3,1,2,4,9,5,6};
int len = sizeof(arr) / sizeof(arr[0]);
SelectSort(arr, len);
PrintSort(arr, len);
}
冒泡排序:
相信大家学习C语言所接触到的第一个排序就是冒泡排序
不多讲了。
那我这里直接就上代码了:
void Swap(int* a, int* b)
{
int t = *a;
*a = *b;
*b = t;
}
//冒泡排序
void BubbleSort(int* arr, int len)
{
for (int i = 0; i < len-1; i++)
{
int flag = 0;
for (int j = 1; j < len - i; j++)
{
if (arr[j - 1] < arr[j])
{
Swap(&arr[j - 1], &arr[j]);
flag = 1;
}
}
if (flag == 0)
{
break;
}
}
}
void PrintSort(int* arr, int len)
{
for (int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
}
int main()
{
int arr[] = { 3,1,2,4,9,5,6};
int len = sizeof(arr) / sizeof(arr[0]);
BubbleSort(arr, len);
PrintSort(arr, len);
}
如有错误!多多指教!
边栏推荐
- R language ggplot2 visual bar graph: visualize the bar graph through the two-color gradient color theme, and add label text for each bar (geom_text function)
- 区间 - 左闭右开
- 享你所想。智创未来
- PostgreSQL 13 installation
- VC development of non MFC program memory leak tracking code
- Thymeleaf common functions
- Why do mechanical engineers I know complain about low wages?
- The speed monitoring chip based on Bernoulli principle can be used for natural gas pipeline leakage detection
- R语言ggplot2可视化条形图:通过双色渐变配色颜色主题可视化条形图、为每个条形添加标签文本(geom_text函数)
- Security analysis of Web Architecture
猜你喜欢
【学习笔记】阶段测试1
Thymeleaf 使用后台自定义工具类处理文本
Countermeasures of enterprise supply chain management system in UCA Era
实现一个博客系统----使用模板引擎技术
Postman简介、安装、入门使用方法详细攻略!
Online electronic component purchasing Mall: break the problem of information asymmetry in the purchasing process, and enable enterprises to effectively coordinate management
Section - left closed right open
PHP - fatal error: allowed memory size of 314572800 bytes exhausted
LeetCode_ 2 (add two numbers)
[summary of leetcode weekly competition] the 81st fortnight competition of leetcode (6.25)
随机推荐
Strong connection component
Sorter evolution of ticdc 6.0 principle
How to protect user privacy without password authentication?
R语言ggplot2可视化:gganimate包基于transition_time函数创建动态散点图动画(gif)、使用shadow_mark函数为动画添加静态散点图作为动画背景
mysql8.0JSON_ Instructions for using contains
Opengauss database source code analysis series articles -- detailed explanation of dense equivalent query technology (Part 2)
LeetCode_ 67 (binary sum)
R语言ggplot2可视化条形图:通过双色渐变配色颜色主题可视化条形图、为每个条形添加标签文本(geom_text函数)
R语言使用ggplot2包的geom_histogram函数可视化直方图(histogram plot)
循环不变式
Topology visual drawing engine
C - Divisors of the Divisors of An Integer Gym - 102040C
R language ggplot2 visualization: gganimate package is based on Transition_ The time function creates dynamic scatter animation (GIF) and uses shadow_ Mark function adds static scatter diagram as anim
R Language ggplot2 Visualization: visualize linegraph, using Legend in Theme function. Paramètre de position emplacement de la légende personnalisée
无密码身份验证如何保障用户隐私安全?
R语言ggplot2可视化密度图:按照分组可视化密度图、自定义配置geom_density函数中的alpha参数设置图像透明度(防止多条密度曲线互相遮挡)
LeetCode_ 2 (add two numbers)
Topology可视化绘图引擎
美国费城发生“安全事故” 2名警察遭枪杀
Fonctions communes de thymeleaf