-
Java基础03_数组排序
数组排序
-
选择排序:每轮选最小的放前面
- 将数组中每个元素与第一个元素比较,如果这个元素小于第一个元素,则交换
- 循环第一条规则,找到最小的元素,放在第一位
- 经过n-1轮比较完成排序
public class SelectionSort {
public static void main(String[] args) {
int[] array = {8,2,3,7,1};
array = selectionSort(array);//调用选择排序的方法
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+",");
}
}
public static int[] selectionSort(int[] array) {
for (int i = 0; i < array.length-1; i++) {
for (int j = i + 1; j < array.length; j++) {
if(array[i]>array[j]){ //如果要降序,把大于号改成小于号
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return array;
}
}
- 冒泡排序:比较相邻元素,大的向后交换,将小的放到前面
public class BubbleSort {
public static void main(String[] args) {
int[] array = {8,2,3,7,1};
array = bubbleSort(array); //调用冒泡排序后得到升序排序后的新数组
for (int i = 0; i < array.length; i++) {
if(i == array.length-1){
System.out.print(array[i]+" "); //最后一个元素后面加空格
}else {
System.out.print(array[i]+",");//只要不是最后一个元素就用逗号隔开
}
}
}
public static int[] bubbleSort(int[] array) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length-i-1; j++) {
if(array[j] > array[j+1]) {
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
return array;
}
}
-
插入排序:
- 将数组分为两部分,将后部分的第一个元素逐一与前部分每一个元素比较,如果当前元素校,就移动比较元素
- 找到合理位置插入
public class InsertSort {
public static void main(String[] args) {
int[] array = {8,2,3,7,1};
array = insertSort(array);
System.out.println(Arrays.toString(array));
}
public static int[] insertSort(int[] array) {
int j,temp;
for (int i = 1; i < array.length; i++) {
temp = array[i];
//利用循环找到插入位置:到头j=-1
for (j = i - 1; j >= 0 && array[j] > temp; j--) {
array[j+1] = array[j];//[j]->[j+1]向后移动
}
array[j + 1] = temp;//将temp的值给array[j+1] ,j+1是因为循环结束后j的值变成-1了
}
return array;
}
}
-
API快速排序Arrays.sort
- Arrays.toString(数组名)以数组的形式输出数组元素
- Arrays.copyOf(array,array.lenth)拷贝(复制)数组
public class ArraysDemo {
public static void main(String[] args) {
int[] array = {8,2,3,7,1};
Arrays.sort(array);//快速排序
System.out.println(Arrays.toString(array));//以数组的形式输出
}
}
- 排序效率:Arrays.sort(array)>插入排序>选择排序>冒泡排序
来源:https://www.cnblogs.com/wangyh-1997/p/14763204.html
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比