当前位置:网站首页>插入排序,选择排序,冒泡排序
插入排序,选择排序,冒泡排序
2022-07-04 19:56:00 【冬雪如春】
1.插入排序
大白话理解原理:将第一个数看成是有序的,从第二个数开始和该数前面的数进行比较,(默认从小到大排序)如果这个数比前一个数小,那么就将这个数,放在一个临时变量中,再进行相同的操作,知道发现前一个数币这个数小就将这个数放在比他小的那个数的后面。
#include <stdio.h>
void InsertSort(int array[], int len)
{
int i;
int j;
int temp;
for(i = 1; i < len; i++)
{
if(array[i] < array[i-1])
{
temp = array[i];
for(j = i - 1; j >= 0 && array[j] > temp; j--)
{
array[j+1] = array[j];
}
array[j+1] = temp;
}
}
}
void print(int array[], int len)
{
for(int i = 0; i < len; i++)
{
printf("%d ",array[i]);
}
}
int main()
{
int array[10] = {23,1,3,54,32,4,56,0,34,8};
print(array, 10);
printf("\n");
InsertSort(array, 10);
print(array, 10);
return 0;
}
2.选择排序
选择排序就是从一组数据的第一个数开始,在数组中下标是从0开始,将第一个数的位置记录下来,在一个一个与后面的数进行比较,如果后面有比这个数还小的数,那么就将这个数的位置与之前记录的数的位置更换,一直这样比较到最后一个数,然后将这个最小的数放在排好序的数据的后面,一次类推。排完序的就可以不用比较了,从还未排序的位置开始往后比较。
#include <stdio.h>
void SelectionSort(int array[], int len)
{
int i,j,k,temp;
for(i = 0; i < len; i++)
{
k = i;
for(j = i + 1; j < len; j++)
{
if(array[j] < array[k])
{
k = j;
}
}
temp = array[k];
array[k] = array[i];
array[i] = temp;
}
}
void print(int array[], int len)
{
for(int i = 0; i < len; i++)
{
printf("%d ",array[i]);
}
}
int main()
{
int array[10] = {23,1,3,54,32,4,56,0,34,8};
print(array, 10);
printf("\n");
SelectionSort(array, 10);
print(array, 10);
return 0;
}
3.冒泡排序
#include <stdio.h>
void BubbleSort(int array[], int len)
{
int i,j,k,temp;
for(i = 0; i < len; i++)
{
for(j = 0; j < len - i - 1; j++)
{
if(array[j] > array[j+1])
{
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
void print(int array[], int len)
{
for(int i = 0; i < len; i++)
{
printf("%d ",array[i]);
}
}
int main()
{
int array[10] = {
23,1,3,54,32,4,56,0,34,8};
print(array, 10);
printf("\n");
BubbleSort(array, 10);
print(array, 10);
return 0;
}
边栏推荐
- PermissionError: [Errno 13] Permission denied: ‘data.csv‘
- D3.js+Three.js数据可视化3d地球js特效
- GVM使用
- VIM asynchronous problem
- [server data recovery] a case of RAID5 data recovery stored in a brand of server
- [1200. Minimum absolute difference]
- What if the brightness of win11 is locked? Solution to win11 brightness locking
- LeetCode 871. Minimum refueling times
- Stack: how to realize the judgment of valid brackets?
- Go language notes (4) go common management commands
猜你喜欢
Idea restore default shortcut key
Fleet tutorial 08 introduction to AppBar toolbar Basics (tutorial includes source code)
【1200. 最小絕對差】
What if the brightness of win11 is locked? Solution to win11 brightness locking
福昕PDF编辑器v10.1.8绿色版
D3.js+Three.js数据可视化3d地球js特效
Foxit pdf editor v10.1.8 green version
二叉树的四种遍历方式以及中序后序、前序中序、前序后序、层序创建二叉树【专为力扣刷题而打造】
idea配置标准注释
heatmap.js图片热点热力图插件
随机推荐
LeetCode 871. 最低加油次数
nmap扫描
In the face of the same complex test task, why can the elder sort out the solution quickly? Ali's ten-year test engineers showed their skills
接口设计时的一些建议
GVM use
Hash quiz game system development how to develop hash quiz game system development (multiple cases)
Explication détaillée du mécanisme de distribution des événements d'entrée multimodes
Sword finger offer II 80-100 (continuous update)
uniapp 富文本编辑器使用
go defer的使用说明
RFID仓储管理系统解决方案的优点
idea插件
【1200. 最小绝对差】
[1200. Différence absolue minimale]
Golang中UTF编码和字符集
Some suggestions for interface design
字节测试工程师十年经验直击UI 自动化测试痛点
acwing 3302. 表达式求值
BFC面试简述
idea大小写快捷键