java实现 排序算法(鸡尾酒排序&选择排序&插入排序&二分插入排序)
1、鸡尾酒排序算法
源程序代码:
package com.SuanFa;
public class Cocktial {
public static void main(String[] args) {
// TODO Auto-generated method stub
cooktailSort cook=new cooktailSort();
int[] A={1,2,3,8,4,0,5,34,12,67,35,9,45,443,454,242,343};
int n=A.length;
cook.cooktailSort(A, n);
System.out.println("输出排序结果");
for(int i=0;i<A.length;i++){
System.out.printf(A[i]+" ");
}
}
}
class cooktailSort{
void Swap(int[] A,int i,int j){
int temp=A[i];
A[i]=A[j];
A[j]=temp;
}
void cooktailSort(int[] A,int n){
int left=0;
int right=n-1;
while(left<right){
for(int i=left;i<right;i++){
if(A[i]>A[i+1]){
Swap(A,i,i+1);
}
}
right--;
for(int i=right;i>left;i--){
if(A[i-1]>A[i]){
Swap(A,i-1,i);
}
}
left++;
}
}
}
2、选择排序算法
程序代码
package com.SuanFa;
public class XuanZe {
public static void main(String[] args) {
// TODO Auto-generated method stub
selectSort sort=new selectSort();
int[] A={23,34,3,45,45,32,55,12};
int n=A.length;
sort.select(A, n);
System.out.println("输出排序结果");
for(int i=0;i<n;i++){
System.out.printf(A[i]+" ");
}
}
}
class selectSort{
void Swap(int[] A,int i,int j){
int temp=A[i];
A[i]=A[j];
A[j]=temp;
}
void select(int[] A,int n){
for(int i=0;i<n-1;i++){
int min=i;
for(int j=i+1;j<n;j++){
if(A[j]<A[min]){
min=j;
}
}
if(min!=i){
Swap(A,min,i);
}
}
}
}
3、插入排序算法
程序代码
package com.SuanFa;
public class ChaRu {
public static void main(String[] args) {
// TODO Auto-generated method stub
cha c=new cha();
int[] A={2,3,3,5,21,65,23,43};
int n=A.length;
c.insertSoet(A, n);
for(int i=0;i<n;i++){
System.out.printf("%d ",A[i]);
}
}
}
class cha{
void insertSoet(int A[],int n){
for(int i=1+1;i<n;i++){
int get=A[i];
int j=i-1;
while(j>0&&A[j]>get){
A[j+1]=A[j];
j--;
}
A[j+1]=get;
}
}
}
4、二分插入排序算法
程序代码
package com.SuanFa;
public class erfengChaRu {
public static void main(String[] args) {
// TODO Auto-generated method stub
test1 sort=new test1();
int[] A={23,34,3,45,45,32,12,55,12,12};
int n=A.length;
sort.insertSortDic(A, n);
System.out.println("输出排序结果");
for(int i=0;i<n;i++){
System.out.printf(A[i]+" ");
}
}
}
class test1{
void insertSortDic(int A[],int n){
for(int i=1;i<n;i++){
int get=A[i];
int left=0;
int right=i-1;
while(left<=right){
int mid=(left+right)/2;
if(A[mid]>get){
right=mid-1;
}else
left=mid+1;
}
for(int j=i-1;j>=left;j--){
A[j+1]=A[j];
}
A[left]=get;
}
}
}
5、堆排序算法
java实现 排序算法(鸡尾酒排序&选择排序&插入排序&二分插入排序)的更多相关文章
- Java常见排序算法之直接选择排序
在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...
- Java排序算法之直接选择排序
Java排序算法之直接选择排序 基本过程:假设一序列为R[0]~R[n-1],第一次用R[0]和R[1]~R[n-1]相比较,若小于R[0],则交换至R[0]位置上.第二次从R[1]~R[n-1]中选 ...
- 排序算法系列:选择排序算法JAVA版(靠谱、清晰、真实、可用、不罗嗦版)
在网上搜索算法的博客,发现一个比较悲剧的现象非常普遍: 原理讲不清,混乱 啰嗦 图和文对不上 不可用,甚至代码还出错 我总结一个清晰不罗嗦版: 原理: 从数组头元素索引i开始,寻找后面最小的值(比i位 ...
- 【排序算法】直接选择排序算法 Java实现
基本思想 直接选择排序是从无序区选一个最小的元素直接放到有序区的最后. 初始状态:无序区为a[1...n],有序区为空. 第一次排序:在无序区a[1...n]中选出最小的记录a[k],将它与有序区的第 ...
- 排序算法入门之选择排序-Java实现
本文参考http://blog.csdn.net/m0_37568091/article/details/78023705 选择排序是先从对象数组中选出最小的放在第一个位置,再从剩下的元素中选择次小的 ...
- 常见的排序算法(直接插入&选择排序&二分查找排序)
1.直接插入排序算法 源码: package com.DiYiZhang;/* 插入排序算法 * 如下进行的是插入,排序算法*/ public class InsertionSort { pub ...
- C语言中的排序算法--冒泡排序,选择排序,希尔排序
冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没 ...
- JS排序算法--冒泡排序和选择排序
在我们JS语法当中,数据类型中的复杂数据类型,有一项我们常用的数组数据类型,其中存储的数据有时是乱序的,需要排序,我们有多种方法,最简单的肯定是 :变量.sort(fonction(a,b){a> ...
- 排序系列 之 简单选择排序及其改进算法 —— Java实现
简单选择排序算法: 基本思想: 在待排序数据中,选出最小的一个数与第一个位置的数交换:然后在剩下的数中选出最小的数与第二个数交换:依次类推,直至循环到只剩下两个数进行比较为止. 实例: 0.初始状态 ...
- 冒泡排序算法和简单选择排序算法的js实现
之前已经介绍过冒泡排序算法和简单选择排序算法和原理,现在有Js实现. 冒泡排序算法 let dat=[5, 8, 10, 3, 2, 18, 17, 9]; function bubbleSort(d ...
随机推荐
- 【译】第二篇 SQL Server安全验证
本篇文章是SQL Server安全系列的第二篇,详细内容请参考原文. 验证是检验主体的过程.主体需要唯一标识,那样SQL Server可以确定主体有哪些权限.正确的验证是提供安全访问数据库对象的必要的 ...
- 2017-2018-2 165X 『Java程序设计』课程 团队项目备选题目
2017-2018-2 165X 『Java程序设计』课程 团队项目备选题目 结合本课程时间安排,以及同学们的专业和课程内容,制定了以下六个题目供各小组选择.如有其他项目方案设想,可自行与老师沟通.老 ...
- android PopupWindow 显示问题
设置可点击,其余控件也可点击,等操作 setOutsideTouchable(true); setBackgroundDrawable(new BitmapDrawable()); setTouc ...
- Python学习笔记-循环语句
While 循环语句 flag=False name = raw_input("请输入:"); numbers=['羊爸爸','羊妈妈','羊宝','牛宝'] while len( ...
- python 实现神经网络算法
注: Scratch是一款由麻省理工学院(MIT) 设计开发的一款面向少年的简易编程工具.这里写链接内容 本文翻译自“IMPLEMENTING A NEURAL NETWORK FRO ...
- Python3-递归函数
什么是递归? 递归,就是函数在运行的过程中调用自己. 代码示例 def recursion(n): print(n) recursion(n+) recursion() 出现的效果就是,这个函数在不断 ...
- Scala 入门介绍
1 基础 1.1 Scala 解释器 REPL - 交互式解释器环境 R(read).E(evaluate).P(print).L(loop) 输入值,交互式解释器会读取输入内容并对它求值,再返回结果 ...
- Shell-find . -type f -name "*.log" -print0 | xargs -0 rm -f
用 rm 删除太多的文件时候,可能得到一个错误信息:/bin/rm Argument list too long.
- SPOJ - DQUERY D-query 主席树
题意; 给一个数列$\{ a_i\}$ 一些询问$(l_i,r_i)$ 问你$[l,r]$有多少个不同元素 题解: 其实本质思路和离线化处理询问的线段树/树状数组写法差不多,对区间$[x,r]$来说, ...
- ffmpeg-201701[10,16,21,23,25]-bin.7z
ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 5 屏幕横向放大 20 像素 6 屏幕横向缩小 20 像素 S 下一帧 [ -2秒 ] +2 ...