| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 数据结构与算法 -> 选择排序算法 -> 正文阅读 |
|
|
[数据结构与算法]选择排序算法 |
public class Code_SelectSort {
public static void selectionSort(int []arr){
//arr是一个无序的数组 长度是1或者为空的数组 直接返回空
//没有排序的必要了
if (arr==null||arr.length<2){
return;
}
//0~N-1 找到最小值,在哪,放到0位置上
//1~n-1 找到最小值,在哪,放到1位置上
//2~n-1 找到最小值,在哪,放到2位置上
//n-1~n-1 最后整个数组有序
/*
选择排序原理:选择最小的放在前面;
i=0 -->比较N-1次
i=1 -->比较N-2次
*/
//选择排序
for (int i=0;i<arr.length-1;i++){
//i表示轮空 i -->0 - n-2
//i=0
int minIndex=i;//默认第一个数是最小值数的索引
for (int j=1;j<arr.length;j++){
/*
0 1 2 3 4
[5,2,4,1,3]
i = 0 j 从 1 -> 4
minIndex = 0;
j = 1时 arr[j] = 2 arr[minIndex] = arr[0] = 5 minIndex = j = 1
j = 2时 arr[j] = 4 arr[minIndex] = arr[1] = 2 minIndex = 1
j = 3时 arr[j] = 1 arr[minIndex] = arr[1] = 2 minIndex = j = 3
j = 4时 arr[j] = 3 arr[minIndex] = arr[3] = 1 minIndex = 3
0 1 2 3 4
[1,5,3,4,2]
i = 1 j 从2-->4
minIndex = i = 1;
j = 2 arr[j] = 3 arr[minIndex] = 5 minIndex = 2
j = 3 arr[j] = 4 arr[minIndex] = 3 minIndex = 2
j = 4 arr[j] = 2 arr[minIndex] = 3 minIndex = 4
swap(arr, i, minIndex)
*/
if (arr[j]<arr[i]){
minIndex=j;
}
swap(arr,i,minIndex);
}
}
}
public static void swap(int[]arr,int i,int minIndex){
// 先储存i位置上的值 临时变量
int tmp=arr[i];
arr[i]=arr[minIndex];
arr[minIndex]=tmp;
}
public static void printArrays(int[]arr){
for (int i=0;i<arr.length;i++){
}
}
public static void main(String[] args) {
int[] arr = {5,2,1,4,3};
}
}
|
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/13 14:01:30- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |