c语言一维数组怎么快速排列
224
2022-12-01
漫画:三种 “奇葩” 的排序算法代码实现
1: 睡眠排序
public class Main2 { public static void sleepSort(int[] array) { for (int i : array) { new Thread(()->{ try { Thread.sleep(i); } catch (Exception e) { e.printStackTrace(); } System.out.println(i); }).start(); } } public static void main(String[] args) { int[] array = { 10, 30, 50, 60, 100, 40, 150, 200, 70 }; sleepSort(array); }}
2:猴子排序
package app;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class randSort{ public static void randSortX(int [] array){ List
3:3.珠排序
package app;public class beadSort{ /** * 这里二维数组 由待排序数组中最大值确定 */ public static void beadSortX(int[] array) { int MAXLEN=0; for (int i : array) { MAXLEN=Math.max(MAXLEN, i); } int [][] matrix=new int[MAXLEN][MAXLEN]; int k=0; for (int i : array) { for (int j = 0; j < i; j++) { matrix[k][j]=1; } ++k; } for (int i = matrix.length-1; i>0; i--) { for (int j = 0; j < matrix.length; j++) { if(matrix[i][j]==0){ int m=i; for (int z = i; z >=0; z--) { if(matrix[z][j]==1){ matrix[m--][j]=1; matrix[z][j]=0; } } } } } for (int i = 0; i < MAXLEN; i++) { int sum=0; for (int j = 0; j < MAXLEN; j++) { if(matrix[i][j]!=0){ sum++; } } if(sum!=0){ System.out.print(sum+ " "); } } } public static void main(String[] args) { int[] array = { 10, 30, 50, 60, 100, 40, 150, 200, 70 }; int[] x = { 3,2,4,5,1}; beadSortX(array); }}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~