排序----4种排序

简介: 排序----4种排序

1.冒泡排序:(稳定)O(n*n)

①.比较相邻的元素,如果前一个比后一个大,就把她们两个调换位置

①.对每一对相邻的元素作同样处理,从开始到最后一对,这步做完后,最后的元素会是最大的数。

//冒泡排序

//从小到大排序,从第一个元素开始,相邻元素比较,j比j+1大的,交换位置。
public class BubbleSort {
public  static void swap(int a[],int i,int j){
int temp=0;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
public static void bubbleSort(int a[]){
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length-i-1;j++){
if(a[j]>a[j+1]){
swap(a,j,j+1);
}
}
}
}
public static void main(String[] args) {
int a[]={2,4,6,3,8,4,7,9,4};
bubbleSort(a);
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
}

}

2.简单选择排序:    <不稳定>   O(n*n)

          初始时在序列中找到最小(大)元素,放到序列的起始位置作为已排序序列;然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序列的末尾。

//简单选择类排序,把第i个当成最小的,便利第i+1之后的,找到最小的和i交换。
public class SelectSort {
public static void swap(int a[],int i,int j){
int temp=0;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
public static void selectSort(int a[]){
for(int i=0;i<a.length;i++){
int min=i;
for(int j=i+1;j<a.length;j++){
if(a[j]<a[min]){
min=j;
}
if(min!=i){
swap(a,min,i);
}
}
}
}
public static void main(String[] args) {
int a[]={2,5,3,6,4,7,5};
selectSort(a);
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
}
}

3.直接插入排序        <稳定>      0(n*n)
/*思想:1.从第一个元素开始,该元素可以认为已经被排序。
 * 2.取出下一个元素,在已经排序的元素序列中从后向前扫描
 *  3.如果该元素(已排序)大于新元素,将该元素移到下一个位置。
 *  4.重复3,直到找到已排序的元素小于或者等于新元素的位置。
 *  5.将新元素插入到该位置。
  /
public class InsertSort {
public static void insertSort(int a[]){
for(int i=1;i<a.length;i++){
int get=a[i];
/*int j=0;
for(j=i-1;j>=0&&get<a[j];j--){
a[j+1]=a[j];
}
a[j+1]=get;*/
int j=i-1;
while(j>=0&&a[j]>get){
a[j+1]=a[j];
j--;
}
a[j+1]=get;
}
}
public static void main(String[] args) {
int a[]={4,2,9,5,3};
insertSort(a);
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}

}

}

4.快速排序       <不稳定>

①.从序列中挑出一个元素,作为“基准”

②.把所有比基准值小的元素放在基准前面,把所有比基准值大的元素放在基准的后面

public class QuickSort {
public static void swap(int a[],int i,int j){
int temp=0;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
public static int qSort(int a[],int low,int high){
int key;
key=a[low];
while(low<high){
while(low<high&&a[high]>=key)
high--;
swap(a,low,high);
while(low<high&&a[low]<=key)
low++;
swap(a,low,high);
}
  return low;//此时 low和high在一个位置上。
}

public static void qSort2(int a[],int low,int high){
int pivot;
if(low<high){
pivot=qSort(a,low,high);
qSort2(a,low,pivot-1);
qSort2(a,pivot+1,high);
}
}
public static void main(String[] args) {
int a[]={2,5,3,6,4,7,5};
qSort2(a,0,a.length-1);
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
}
}

相关文章
|
9月前
|
人工智能 资源调度 数据可视化
2025年优测压测平台与JMeter效率成本对比及行业实践
文章围绕2025年优测压测平台与JMeter展开,介绍压测行业发展趋势,对比二者效率与成本,指出压测行业痛点。阐述优测平台核心优势与应用场景,分享行业实践案例,还给出方案选择建议、云压测优势及适用场景,为企业在压测方案选择上提供参考。
|
网络协议 C# 移动开发
c#获取和设置网卡ip/dns等信息
  using System; using System.Windows.Forms; using System.Management; using System.
1984 0
|
C++
[C++/PTA] 使用成员函数重载复数类的运算符+
[C++/PTA] 使用成员函数重载复数类的运算符+
400 0
|
13天前
|
人工智能 自然语言处理 安全
阿里云千问办公 QwenWork详细介绍:产品核心能力、典型场景、价格及常见问题解答
千问办公是阿里云推出的一站式AI办公平台,主打"不止于对话,更注重交付",依托通义千问旗舰大模型,用户一句话即可完成数据分析、PPT生成、视频剪辑等复杂任务,直接输出可用成果。产品深度打通钉钉生态与企业OA,覆盖桌面端、网页端,提供企业标准版198元/人/月等多档订阅方案,新用户注册即赠2000积分,适配工程师、HR、财务等多职业办公场景,成为能动手干活的"全能AI同事"。
|
13天前
|
人工智能
千问办公官网入口:阿里AI办公QwenWork产品页和免费网页端链接
千问办公官网含两大入口:一是网页端(qwenwork.cn),即开即用,支持浏览器直接访问;二是阿里云产品页 https://t.aliyun.com/U/JNKJuO 提供免费/付费版详情、功能介绍及使用指南。
|
12天前
|
IDE 开发工具
Qoder 上线 Sonus 模型,Computer Use 能力全面增强
Qoder国际版上线全新内置大模型Sonus(/ˈsoʊnəs/),全球领先,专精超长任务执行与电脑操作(Computer Use)。配合Qoder桌面端0.2.3版本,可自主完成编程、金融建模、科研及表格制作等复杂工作。现全面支持Qoder全系产品,效率提升3.2倍。
1549 8
Qoder 上线 Sonus 模型,Computer Use 能力全面增强
|
14天前
|
缓存 人工智能 自然语言处理
阿里云qwen3.8-flash大模型介绍:模型能力、模型价格、免费额度与最新活动
本文是阿里云百炼平台Qwen3.8-Flash大模型的选型接入指南,作为兼顾性能与响应速度的高性价比多模态模型,它支持百万级上下文窗口、全场景多模态输入与完整智能体能力矩阵,适配编程辅助、智能体协作等核心场景。文中同步梳理了最新下调的阶梯定价、夜间4折等优惠活动,搭配OpenAI兼容流式调用示例,帮助开发者低成本快速落地高并发AI应用。
阿里云qwen3.8-flash大模型介绍:模型能力、模型价格、免费额度与最新活动
|
14天前
|
人工智能 API 内存技术
刚刚 DeepSeek V4.1 Flash 开启内测,1 分钟教你用上!
刚刚 DeepSeek 内测群发布了 DeepSeek V4.1 Flash 中间版本内测的消息,这次的模型采用了新的结构,原生支持多模态、能力更强、速度更快、且成本更低。
1995 15
|
8天前
|
缓存 IDE Java
【保姆级】Android Studio下载、安装和汉化教程(2026最新)
Android Studio 是 Google 官方推出的免费 Android 应用开发集成环境,基于 IntelliJ IDEA,内置模拟器、调试器、性能分析及 Compose 界面工具,功能全面,文档丰富,是安卓开发首选工具。(239字)