import java.util.Arrays;
public class GenerateSort {
private int[] nums;
public void getGenerate(int[] nums)
{
this.nums = nums;
while(true)
{
int index = getSwapIndex(this.nums);
if(index == -1)
{
return;
}
swap(this.nums,index);
move(this.nums,index);
System.out.println(Arrays.toString(this.nums));
}
}
private int getSwapIndex(int[] nums)
{
int index = -1;
for(int i=nums.length-1;i>0;i--)
{
if(nums[i-1] < nums[i])
{
index = i - 1;
return index;
}
}
return index;
}
private void swap(int[] nums,int index)
{
int temp = Integer.MAX_VALUE;
int t = 0;
for(int i=nums.length-1;i>index;i--)
{
if(nums[index] < nums[i] && temp > nums[i])
{
temp = nums[i];
t = i;
}
}
nums[t] = nums[index];
nums[index] = temp;
}
private void move(int[] nums,int index)
{
for(int i=index+1;i<nums.length-1;i++)
{
for(int j=i+1;j<nums.length;j++)
{
if(nums[i]>nums[j])
{
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
}
}
生成排序
最新推荐文章于 2022-11-03 14:17:56 发布