日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java对数组进行排序_用Java对数组进行排序所需的最少交换

發布時間:2025/3/11 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java对数组进行排序_用Java对数组进行排序所需的最少交换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java對數組進行排序

Problem:

問題:

In this problem, we would have an unordered array with consecutive distinct natural numbers [1,2,3,..n], where n is the size of the array. We have to find the minimum number of swaps required to sort the array in ascending order.

在此問題中,我們將擁有一個具有連續的不同自然數[1,2,3,.. n]的無序數組,其中n是數組的大小。 我們必須找到按升序對數組進行排序所需的最小交換次數 。

Note: Think and try by yourself before looking to the solution...

注意:在尋求解決方案之前,請自己思考并嘗試...

Solution:

解:

This problem can be solved easily by observing the actual position of elements and their current position , the actual position of element in sorted array will be the a[cur]-1 (element-1), by tracking the actual position of element if we come back to the current element then there exist a cycle , then count the size of that cycle , the number of swaps will be cycling size-1, do this for all the cycles and add them together.

通過觀察元素的實際位置及其當前位置,可以很容易地解決此問題,如果我們跟蹤元素的實際位置,則排序數組中元素的實際位置將為a [cur -1 ] ( element-1 )回到當前元素,然后存在一個循環,然后計算該循環的大小 ,交換次數將為循環size-1 ,對所有循環進行此操作并將它們加在一起。

Example:

例:

Let an array: A =[2, 4, 5, 1, 3]

設一個數組:A = [2,4,5,1,3]

There exist two cycles:
Cycle 1: 2 → 4 → 1 → 2
Cycle 2: 5 → 3 → 5

存在兩個周期:
周期1:2→4→1→2
周期2:5→3→5

Size of cycle = number of nodes:
Size of cycle 1=3
Size of cycle 2=2

周期大小=節點數:
周期1的大小= 3
周期2 = 2

Number of swaps: (3-1)+(2-1) = 3

掉期數量: (3-1)+(2-1)= 3

.minHeight{min-height: 250px;}@media (min-width: 1025px){.minHeight{min-height: 90px;}} .minHeight{min-height: 250px;}@media (min-width: 1025px){.minHeight{min-height: 90px;}}

Program:

程序:

import java.io.*; import java.math.*; import java.util.*;public class Swap {static int minimumSwaps(int[] arr) {int swap=0;boolean visited[]=new boolean[arr.length];for(int i=0;i<arr.length;i++){int j=i,cycle=0;while(!visited[j]){visited[j]=true;j=arr[j]-1;cycle++;}if(cycle!=0)swap+=cycle-1;}return swap;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int[] arr = new int[n];for (int i = 0; i < n; i++) {arr[i] = scanner.nextInt();}int res = minimumSwaps(arr);System.out.println(res);scanner.close();} }

Output

輸出量

44 3 2 12

翻譯自: https://www.includehelp.com/java-programs/minimum-swaps-required-to-sort-an-array.aspx

java對數組進行排序

總結

以上是生活随笔為你收集整理的java对数组进行排序_用Java对数组进行排序所需的最少交换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产人妻精品久久久久野外 | 麻豆changesxxx国产 | 成人久久久精品国产乱码一区二区 | www久久久com | 韩国在线不卡 | 伊人精品一区二区三区 | 这里只有精品在线播放 | av在线亚洲天堂 | 日啪| av福利在线播放 | 亚洲一区二区精品在线观看 | 性做久久久久久免费观看 | 成人a毛片 | 激情五月色综合国产精品 | 深喉口爆一区二区三区 | 国产av精国产传媒 | av一级网站 | 成人资源站 | 调教少妇视频 | www日本高清| 四虎在线网址 | 91青青操 | 国产电影一区二区三区 | 日韩欧洲亚洲AV无码精品 | 亚洲网址在线观看 | 美美女高清毛片视频免费观看 | 欧美一区二区视频免费观看 | 国产伦精品一区二区三区免费迷 | 国产精品777 | 日美韩一区二区三区 | 日韩图色 | 成年人国产视频 | 国产麻豆乱码精品一区二区三区 | 一级片在线观看免费 | 久草中文网 | 亚洲av无码专区在线播放中文 | 少妇一级淫免费播放 | 国产综合在线播放 | 欧美va天堂 | 亚洲色图另类小说 | 87福利视频 | 中文字幕一区二区三区乱码不卡 | 尤物视频在线观看免费 | 9i免费看片黄 | 久草视频在线看 | 99国产精品一区 | 日韩视频在线观看一区二区 | 成人免费a视频 | 一区二区三区免费高清视频 | 日韩视频一二三 | 木下凛凛子av一区二区三区 | 中文字幕日韩精品一区 | 青青国产视频 | 国产精品无码成人片 | 亚洲另类xxxx | 女性向小h片资源在线观看 日本天天操 | 欧美性网址 | 无码国内精品人妻少妇蜜桃视频 | 久久久久亚洲av成人网人人软件 | 朝鲜女人性猛交 | 精品久久人人妻人人做人人 | 伊人免费 | 好看的黄色录像 | www.av在线.com | 污视频免费在线观看网站 | 91精品欧美一区二区三区 | 日韩欧美一二区 | 精品亚洲国产成人av制服丝袜 | 成人h视频| 永久免费视频网站直接看 | 懂色aⅴ国产一区二区三区 亚洲欧美国产另类 | 国产男女无套 | 日韩欧美中文字幕一区二区三区 | 成人h视频在线观看 | 波多野结衣加勒比 | 看av免费毛片手机播放 | 狠狠干伊人 | 密臀久久 | 熟睡侵犯の奶水授乳在线 | 国际av在线 | h片网站在线观看 | 日本中文字幕在线视频 | 国产高潮av | 亚洲а∨天堂久久精品2021 | 欧美人与禽猛交乱配视频 | 久久婷婷五月综合色国产香蕉 | 日本涩涩网 | 九色视频网 | 白丝一区| 一区二区三区国产精品视频 | 老司机一区二区三区 | 麻豆视频在线免费看 | 在线免费观看黄色片 | 久久夫妻视频 | av官网在线观看 | 97欧美视频 | 樱桃成人精品视频在线播放 | 日本xxxx在线观看 | 嘿咻视频在线观看 |