java的排序_java排序
Bubble sort
冒泡排序 一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
冒泡排序算法的运作如下:
1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
3. 针对所有的元素重复以上的步骤,除了最后一个。
4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
算法复杂度:
package Sort;
import java.util.Random;
public class BubbleSort {
public static void main(String[] args) {
int[] arr = new int[10];
Random rd = new Random();
for(int i=0;i
arr[i] = rd.nextInt(30);
}
output(arr);
bubble_sort(arr);
}
private static void bubble_sort(int[] arr) {
int temp;
for(int i=0;i
for(int j=0;j
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
System.out.println(">>>>>>>>>>>");
output(arr);
}
System.out.println("<<<<<<<<<<<<<
output(arr);
}
private static void output(int[] arr) {
for(int i=0;i
System.out.print(arr[i]+" ");
}
System.out.println();
}
}
总而言之,经过一次冒泡会依次找到最大值、次大值、次次大值。。。
but
看到这里,读者可能会问在第七次排序结束之后,整个数组已经完全有序了,后面的排序不需要,这也正是这种算法的弊端,别急,下一个排序算法可以解决这个问题的
Cocktail shaker sort
鸡尾酒排序
区别于冒泡排序
此算法以双向进行排序,鸡尾酒排序等于是冒泡排序的轻微变形。不同的地方在于从低到高然后从高到低,而冒泡排序每次都是从低到高去比较序列里的每个元素。他可以得到比冒泡排序稍微好一点的效能,原因是冒泡排序只能从一个方向进行比对(由低到高),每次循环只移动一个项目
package Sort;
import java.util.Random;
/*** 鸡尾酒排序* */
public class Cocktailshakersort {
public static void main(String[] args) {
int[] arr = new int[10];
Random rd = new Random();
for(int i=0;i
arr[i] = rd.nextInt(30);
}
output(arr);
cocktail_sort(arr);
}
public static void cocktail_sort(int[] arr){
int left = 0, right = arr.length-1;
int tempb,tempa;
while(left
for(int i=left;i
if(arr[i]>arr[i+1]){
tempb = arr[i];
tempa = arr[i+1];
arr[i] = tempa;
arr[i+1] = tempb;
}
}
right--;
output(arr);
for(int i=right;i>left;i--){
if(arr[i-1]>arr[i]){
tempb = arr[i-1];
tempa = arr[i];
arr[i-1] = tempa;
arr[i] = tempb;
}
}
left++;
output(arr);
}
}
public static void output(int[] arr){
for(int i=0;i
System.out.print(arr[i]+" ");
}
System.out.println();
}
}
java的排序_java排序相关推荐
- java基础排序_Java排序算法-Java入门|Java基础课程
1. 课程目标排序是任何语言都会使用到的功能之一,然成果排序的算法有很多,对空间的要求及其时间效率也不尽相同. 本文章以Java语言示例,通过对空间要求.时间效率要求,来对比各种排序算法的使用场景 2 ...
- java 比较算法_JAVA排序算法实现和比较:冒泡,桶,选择,快排,归并
一.冒泡排序: 实现思想: 重复地走访过要排序的元素列,一次比较两个相邻的元素,如果他们的顺序(如从大到小.首字母从A到Z)错误就把他们交换过来.走访元素的工作是重复地进行直到没有相邻元素需要交换,也 ...
- java 正序排序_java排序之冒泡排序
性能优化冒泡排序 1.举个例子:int[] array = {2,4,9,7,6,5}; 第一轮2和4进行比较,2<4,位置不变.再4和9进行比较,4<9,位置不变.再9和7进行比较,9& ...
- java 全排序_Java排序算法全
Java排序算法代码 零. 排序基类 package com.yunche.sort; /** * @ClassName: BaseSort * @Description: * @author: yu ...
- java sort方法_Java排序方法sort用法详解
本文实例为大家分享了java对数组.集合的排序方法,供大家参考,具体内容如下 对数组的排序: //对数组排序 public void arraySort(){ int[] arr = {1,4,6,3 ...
- java堆排序工具包_JAVA 排序工具类
提供了以下排序:冒泡排序 选择排序 插入排序 希尔排序 快速排序 归并排序 桶排序 堆排序 package com.xingej.algorithm.sort;import java.util.Arr ...
- java 英文单词排序_java 排序单词
package mypackage; public class Test { public static void main(String[] args) { WindowDocument win=n ...
- java排列序数_JAVA排序数字字母混合
展开全部 import java.util.ArrayList; import java.util.List; public class Sort { /** * @param args */ pub ...
- java直接选择排序_Java排序大法-直接选择排序
直接选择排序 原理:从数组中选择最大值 ,让最大值保存到最后 好处:效率比冒泡排序法要快 public class SortSelect { public static void main(Strin ...
最新文章
- 使用python愉快地做高数线代题目~
- Python中的*args和**kwargs是什么?该如何使用?
- LeetCode Linked List Cycle II
- tensorflow 进阶(四)---CNN
- 深度学习在其他领域的应用1:密码破解
- 华为5g鸿蒙折叠,华为5G折叠概念新机:麒麟9000+鸿蒙OS 这才是华为的实力
- android ratingbar星星显示
- Python实战从入门到精通第四讲——数据结构与算法2之实现一个优先级队列
- (转)mysql 无法设置外键的原因总结
- 报表中判断字段中是否包含某字符串
- Ponemon:优化SIEM时所面临的挑战
- 利用SQL语句查询数据库中具体某个字段的重复行
- python爬虫对比_Python六大框架对比,Web2py略胜一筹|python爬虫|python入门|python教程...
- 图片数据提取软件--GetData Graph Digitizer
- 将excel中的列转置成行
- 前端剑法第四式————御风
- PICO 开发者管理平台
- ORACLE 10 g的 merge into 用法
- nvcc: command not found
- 先学vba还是python-以Excel处理为目的学习python还是VBA?
热门文章
- MPI 集合通信函数 MPI_Reduce(),MPI_Allreduce(),MPI_Bcast(),MPI_Scatter(),MPI_Gather(),MPI_Allgather(),MPI_S
- C 中的static关键字
- cifar数据库及图像可视化
- 云炬金融每日一题20210906
- [省级大创项目]教育类APP的探索和实践——大学物理实验助手APP开发
- 科大星云诗社动态20210822
- 台湾大学林轩田机器学习技法课程学习笔记15 -- Matrix Factorization
- Sqlserver中查询存储过程是否包含某些文本
- bash脚本一条命令直接发送http请求
- C语言中巧妙的使用#和##