java快速排序、冒泡排序、插入排序
更新时间:2023-05-17 02:56:01 阅读量: 实用文档 文档下载
java里面常用的三种排序的示例源代码
package com.staconfree;
//主要要明白原理
public class Sort {
//快速排序1
private static int times = 0;
private static void QuickSort(int e[], int first, int end) {
int i = first, j = end, temp = e[first];
while (i < j) {
while (i < j && e[j] >= temp)
j--;
e[i] = e[j];
while (i < j && e[i] <= temp)
i++;
e[j] = e[i];
}
e[i] = temp;
times++;
System.out.println("第"+times+"次排序后:"+temp+"i="+i);
for (int m = 0; m < end+1; m++)
System.out.println(e[m]);
if (first < i - 1){
System.out.println("前半部分");
QuickSort(e, first, i - 1);}
if (end > i + 1){
System.out.println("后半部分");
QuickSort(e, i + 1, end);}
}
//快速排序2
private static int Partition(int e[],int first,int last){
int i = first,j = last,tmp = e[first];
while(i < j){
while(i < j && e[j] >= tmp){
j--;
}
e[i] = e[j];
while(i < j && e[i] <= tmp){
i++;
}
e[j] = e[i];
}
e[i] = tmp;
return i;
}
private static void QuickSort2(int e[],int first,int last){
int position;
if(first < last){
position = Partition(e,first,last);
QuickSort2(e,first,position - 1);
QuickSort2(e,position + 1,last);
}
}
//冒泡排序
private static void upSort(int e[]){
int end = e.length - 1,tmp;
for(int i = 0;i <= end;i++){
for(int j = i +1 ;j <= end;j++){
if(e[i] > e[j]){
tmp = e[i];
e[i]=e[j];
e[j]=tmp;
}
}
}
}
//插入排序
public static void insertSort(Comparable[] data) {
// 数组长度
int len = data.length;
// 从下标为1开始依次插入
for (int i = 1; i < len; i++) {
// 当前待插入的数据
Comparable currentData = data[i];
int temp = i;
while (temp > 0 && data[temp - 1].compareTo(currentData) > 0) {
// 向右移动
data[temp] = data[temp - 1];
temp--;
}// end while
data[temp] = currentData;
}// end for
}// end sort
public static void insertSort(int[] data) {
// 数组长度
int len = data.length;
// 从下标为1开始依次插入
for (int i = 1; i < len; i++) {
// 当前待插入的数据
int currentData = data[i];
int temp = i;
while (temp > 0 && data[temp - 1] > currentData) {
// 向右移动
data[temp] = data[temp - 1];
temp--;
}// end while
data[temp] = currentData;
}// end for
}// end sort
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[] = { 49, 38, 65, 97, 76, 13, 27, 49,100,23,48,289 };
//Comparable arr[] = { 49, 38, 65, 97, 76, 13, 27, 49,100,23,48,289 };
int len = arr.length;
int i;
System.out.println("before sort\n");
for (i = 0; i < len; i++)
System.out.println(arr[i]);
//QuickSort(arr, 0, len - 1);
//QuickSort2(arr, 0, len - 1);
//upSort(arr);
insertSort(arr);
System.out.println("after sort\n");
for (i = 0; i < len; i++
java里面常用的三种排序的示例源代码
)
System.out.println(arr[i]);
}
}
正在阅读:
java快速排序、冒泡排序、插入排序05-17
现代花园房地产开发可研报告07-01
开发区农业产业基地可研报告06-23
盗窃罪研究03-09
常用药品名称缩写简表09-16
2014-2015学年江苏省东台市梁垛镇中学七下期中检测地理试卷(带解04-07
职业卫生监督执法工作总结08-26
银行会计练习题2答案07-05
经济法实质正义06-21
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 排序
- 冒泡
- 插入
- 快速
- java
- 数字光柱显示控制仪
- 100部美国励志电影
- 男生照相姿势(图解)女生照相姿势(图解)情侣照相姿势(图解)
- 社会保险网上申报操作流程
- 《数学课程标准案例式导读与学习内容要点》学习心得
- 人教版三年级上册语文期末总复习资料整理____姓名
- 2016-2021年中国废轮胎裂解炼油设备产业市场运行及产业发展趋势研究报告
- 英语卷&183;2012届湖北省八市高三三月联考(2012.03)
- 朗德鹅雏鹅的饲养管理
- 化肥与有机肥搭配使用好处多
- 个人教学研究总结
- 河北省2010年中考语文试题
- sony_cx4_cs4,__电路原理图1
- 电影招商方案范例
- 2013年PEP人教版三年级下册英语第四单元测试题yh
- 重庆市职工权益保护条例
- 代理商合作协议书详细版
- 明德小学防暴雨雷击事故应急预案
- 2012-07-23_中投证券_26个城市周交易报:量增价稳,去化改善,政策将保持稳定
- 未来出版社品德与生活教案 二年级上册