java簡(jiǎn)單選擇排序?qū)嵗?/h1>
更新時(shí)間:2021年08月26日 11:46:17 作者:五歲i
這篇文章主要為大家詳細(xì)介紹了java簡(jiǎn)單選擇排序?qū)嵗?,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
一、基本概念
每趟從待排序的記錄中選出關(guān)鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結(jié)束為止。
二、實(shí)現(xiàn)思路
從待排序序列中,找到關(guān)鍵字最小的元素;
如果最小元素不是待排序序列的第一個(gè)元素,將其和第一個(gè)元素互換;
從余下的 N - 1 個(gè)元素中,找出關(guān)鍵字最小的元素,重復(fù)(1)、(2)步,直到排序結(jié)束。
三、代碼實(shí)現(xiàn)
public class SelectionSort {
public static void selectionSort(int[] list){
//需要遍歷獲得最小值的次數(shù)
if (1>=list.length)return;
for (int i=0;i<list.length-1;i++){
int temp=0;
int index=i; //選擇當(dāng)前值為最小值索引
for (int j=i+1;j<list.length;j++){
if (list[index]>list[j]){
index=j; //修改最小值索引
}
}
temp=list[index];
list[index]=list[i];
list[i]=temp;
}
}
public static void main(String[] args){
int[] list={4,3,6,5,7,8,2,10,2,9};
selectionSort(list);
for (int num:list){
System.out.print(num+" ");
}
}
}
四、時(shí)間復(fù)雜度
簡(jiǎn)單選擇排序的比較次數(shù)與序列的初始排序無(wú)關(guān)。 假設(shè)待排序的序列有 N 個(gè)元素,則比較次數(shù)總是N (N - 1) / 2。
而移動(dòng)次數(shù)與序列的初始排序有關(guān)。當(dāng)序列正序時(shí),移動(dòng)次數(shù)最少,為 0 。
當(dāng)序列反序時(shí),移動(dòng)次數(shù)最多,為3N (N - 1) / 2。
所以,綜合以上,簡(jiǎn)單排序的時(shí)間復(fù)雜度為 O(N2)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- java 合并排序算法、冒泡排序算法、選擇排序算法、插入排序算法、快速排序算法的描述
- Java中的數(shù)組排序方式(快速排序、冒泡排序、選擇排序)
- java數(shù)組排序示例(冒泡排序、快速排序、希爾排序、選擇排序)
- 深入Java冒泡排序與選擇排序的區(qū)別詳解
- JAVA簡(jiǎn)單選擇排序算法原理及實(shí)現(xiàn)
- Java使用選擇排序法對(duì)數(shù)組排序?qū)崿F(xiàn)代碼
- java冒泡排序和選擇排序示例
- Java對(duì)數(shù)組實(shí)現(xiàn)選擇排序算法的實(shí)例詳解
- java實(shí)現(xiàn)選擇排序算法
- Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:選擇排序 Selection Sort
相關(guān)文章
-
Java中如何使用?byte?數(shù)組作為?Map?的?key
本文將討論在使用HashMap時(shí),當(dāng)byte數(shù)組作為key時(shí)所遇到的問(wèn)題及其解決方案,介紹使用String和List這兩種數(shù)據(jù)結(jié)構(gòu)作為臨時(shí)解決方案的方法,感興趣的朋友跟隨小編一起看看吧 2023-06-06
-
Java程序連接數(shù)據(jù)庫(kù)的常用的類和接口介紹
這篇文章主要介紹了Java程序連接數(shù)據(jù)庫(kù)的常用的類和接口,包括Connection類和Statement類等,需要的朋友可以參考下 2015-10-10
-
Eclipse添加xml文件提示及Hibernate配置學(xué)習(xí)
文件提示功能在開(kāi)發(fā)過(guò)程中很實(shí)用的,本文實(shí)現(xiàn)了一個(gè)Eclipse添加xml文件提示,感興趣的朋友可以了解下啊,希望本文對(duì)你有所幫助 2013-01-01
-
struts2實(shí)現(xiàn)多文件上傳的示例代碼
本篇文章主要介紹了struts2實(shí)現(xiàn)多文件上傳的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
2017-03-03
最新評(píng)論
一、基本概念
每趟從待排序的記錄中選出關(guān)鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結(jié)束為止。
二、實(shí)現(xiàn)思路
從待排序序列中,找到關(guān)鍵字最小的元素;
如果最小元素不是待排序序列的第一個(gè)元素,將其和第一個(gè)元素互換;
從余下的 N - 1 個(gè)元素中,找出關(guān)鍵字最小的元素,重復(fù)(1)、(2)步,直到排序結(jié)束。
三、代碼實(shí)現(xiàn)
public class SelectionSort { public static void selectionSort(int[] list){ //需要遍歷獲得最小值的次數(shù) if (1>=list.length)return; for (int i=0;i<list.length-1;i++){ int temp=0; int index=i; //選擇當(dāng)前值為最小值索引 for (int j=i+1;j<list.length;j++){ if (list[index]>list[j]){ index=j; //修改最小值索引 } } temp=list[index]; list[index]=list[i]; list[i]=temp; } } public static void main(String[] args){ int[] list={4,3,6,5,7,8,2,10,2,9}; selectionSort(list); for (int num:list){ System.out.print(num+" "); } } }
四、時(shí)間復(fù)雜度
簡(jiǎn)單選擇排序的比較次數(shù)與序列的初始排序無(wú)關(guān)。 假設(shè)待排序的序列有 N 個(gè)元素,則比較次數(shù)總是N (N - 1) / 2。
而移動(dòng)次數(shù)與序列的初始排序有關(guān)。當(dāng)序列正序時(shí),移動(dòng)次數(shù)最少,為 0 。
當(dāng)序列反序時(shí),移動(dòng)次數(shù)最多,為3N (N - 1) / 2。
所以,綜合以上,簡(jiǎn)單排序的時(shí)間復(fù)雜度為 O(N2)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java 合并排序算法、冒泡排序算法、選擇排序算法、插入排序算法、快速排序算法的描述
- Java中的數(shù)組排序方式(快速排序、冒泡排序、選擇排序)
- java數(shù)組排序示例(冒泡排序、快速排序、希爾排序、選擇排序)
- 深入Java冒泡排序與選擇排序的區(qū)別詳解
- JAVA簡(jiǎn)單選擇排序算法原理及實(shí)現(xiàn)
- Java使用選擇排序法對(duì)數(shù)組排序?qū)崿F(xiàn)代碼
- java冒泡排序和選擇排序示例
- Java對(duì)數(shù)組實(shí)現(xiàn)選擇排序算法的實(shí)例詳解
- java實(shí)現(xiàn)選擇排序算法
- Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:選擇排序 Selection Sort
相關(guān)文章
Java中如何使用?byte?數(shù)組作為?Map?的?key
本文將討論在使用HashMap時(shí),當(dāng)byte數(shù)組作為key時(shí)所遇到的問(wèn)題及其解決方案,介紹使用String和List這兩種數(shù)據(jù)結(jié)構(gòu)作為臨時(shí)解決方案的方法,感興趣的朋友跟隨小編一起看看吧2023-06-06Java程序連接數(shù)據(jù)庫(kù)的常用的類和接口介紹
這篇文章主要介紹了Java程序連接數(shù)據(jù)庫(kù)的常用的類和接口,包括Connection類和Statement類等,需要的朋友可以參考下2015-10-10Eclipse添加xml文件提示及Hibernate配置學(xué)習(xí)
文件提示功能在開(kāi)發(fā)過(guò)程中很實(shí)用的,本文實(shí)現(xiàn)了一個(gè)Eclipse添加xml文件提示,感興趣的朋友可以了解下啊,希望本文對(duì)你有所幫助2013-01-01struts2實(shí)現(xiàn)多文件上傳的示例代碼
本篇文章主要介紹了struts2實(shí)現(xiàn)多文件上傳的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03