冒泡
public int findKthLargest(int[] nums, int k) {
for (int i = 0; i <nums.length-1 ; i++) {
for (int j = 1; j <nums.length-i ; j++) {
if(nums[j-1]>nums[j]){
int temp = nums[j-1];
nums[j-1]=nums[j];
nums[j] = temp;
}
}
}
return nums[nums.length-k];
}
交换
//交换排序
public int findKthLargest2(int[] nums, int k) {
for (int i = 0; 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;
}
}
}
return nums[nums.length-k];
}
快排
//快排
public int findKthLargest3(int[] nums, int k) {
sort(nums,0,nums.length-1);
System.out.println("Arrays.toString(nums) = " + Arrays.toString(nums));
return nums[nums.length-k];
}
public void sort(int[] nums,int left,int right){
int l =left;
int r = right;
if(left>=right){
return;
}
int pri = nums[left];
while (left<right){
while (nums[right]>=pri&&left<right){
right--;
}
swap(nums, left, right);
while (nums[left]<=pri&&left<right){
left++;
}
swap(nums, left, right);
}
if(left-1>l){
sort(nums, l, left-1);
}
if(right+1<r){
sort(nums, left+1, r);
}
}
void swap(int[] nums,int i, int j){
int temp = nums[i];
nums[i]=nums[j];
nums[j]=temp;
}