冒泡排序和选择排序
//n个整数,从小到大排序
/*
冒泡排序
两两比较,大的排后面。第一次排序,得到最大的数排最后;
第二次排序,得到第二大的数,排在倒数第二个位置。
一共需要排序长度-1次
前几次排序中确定好位置的元素不参与下一次排序,所以j=数组长度-1-i
*/
/*
#include<stdio.h>//冒泡排序
int main(){
int a[5]; //数组长度
int i, j;
int t;
for(i=0; i<5; i++){ //数组元素赋值
scanf("%d", &a[i]);
}
for(i=0; i<5-1; i++){ ////外层循环,i是排序次数,i=数组长度-1
for(j=0; j<5-1-i; j++){ //内层循环,j是进行比较的数组元素下标,j=数组长度-1-i
if(a[j]>a[j+1]){
t = a[j]; //t是中间变量
a[j] = a[j+1];
a[j+1] = t;
}
}
}
for(i=0; i<5; i++){ //输出数组
printf("%d\t", a[i]);
}
return 0;
}
*/
/*
选择排序
第一个元素依次与后面的元素比较,如果有比第一个元素小的元素,第一个元素和这个元素交换位置;
第二个元素依次与后面的元素比较,如果有比第二个元素小的元素,第二个元素和这个元素交换位置;
...
一共判断长度-1次
*/
#include<stdio.h>//选择排序
int main(){
int a[5]; //数组长度
int i, j;
int t;
for(i=0; i<5; i++){ //数组元素赋值
scanf("%d", &a[i]);
}
for(i=0; i<5-1; i++){ ////外层循环,i是循环次数,i=数组长度-1
for(j=i+1; j<5; j++){ //内层循环,j是每次循环比较时,排在后面的数的元素下表
if(a[i]>a[j]){
t = a[j]; //t是中间变量
a[j] = a[i];
a[i] = t;
}
}
}
for(i=0; i<5; i++){ //输出数组
printf("%d\t", a[i]);
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理