新手村
冒泡排序:
实现数组中的元素按照数值大小有序排列(升序,降序)
实现思想:(以降序为例)
1.将第一个数据和第二个数据相比较,如果第一个数据小于第二个数据,将两个数据交换位置
2.指针由第一个数据指向第二个数据,第二个数据和第三个数据相比较,如果第二个数据小于第三个数据,将两个数据交换位置
3.依次类推,完成第一轮排序,第一轮排序结束后,最大的元素被移到了最右边
4.重复以上过程,每排完一轮,比较的次数就少一次
编码思路:需要两层循环,第一层循环i表示排序的轮数,第二层循环j表示比较的次数
例如简一点的冒泡排序,将第一个数字和后面的数字逐个比较大小,如果小于,则互换位置,大于则不动。此时,第一个数为数组中的最大数。然后再将第二个数与后面的数逐个比较,以次类推。
public class Test {
public static void main(String[] args) {
int [] array = {12,3,1254,235,435,236,25,34,23};
int temp;
for (int i = 0; i < array.length; i++) {
for (int j = i+1; j < array.length; j++) {
if (array[i] < array[j]) {
temp = array[i];
array[i] = array[j];
array[j] = temp; // 两个数交换位置
}
}
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
}
}
例题:
class Solution {
public int findKthLargest(int[] nums, int k) {
for(int i=0;i<nums.length;i++){
int temp;
for(int j=i+1;j<nums.length;j++){
if(nums[i]<nums[j]){
temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
}
}
}
int ans=nums[k-1];
return ans;
}
}