java简单排序:选择排序,冒泡排序,插入排序
2017-01-15 15:31
393 查看
import java.util.Arrays;
import java.util.Scanner;
/**
* 一组N个数,要确定其中第k个最大值
* ——选择问题
*/
public class Sort {
private static int fun(int[] arr, int k) {
}
import java.util.Scanner;
/**
* 一组N个数,要确定其中第k个最大值
* ——选择问题
*/
public class Sort {
private static int fun(int[] arr, int k) {
//将这N个数放到一个数组中,通过排序算法找出第k个大的数 //使用冒泡排序 for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { arr[j] = arr[j + 1] ^ arr[j];//通过a^b^b = a 的特性 arr[j + 1] = arr[j + 1] ^ arr[j]; arr[j] = arr[j] ^ arr[j + 1]; } } } //使用选择排序 for (int i = 0;i<arr.length;i++){ int x = i; for (int j =i+1;j<arr.length;j++){ if (arr[j] < arr[x]){ x = j; } } if (x != i){ arr[i] = arr[i]^arr[x]; arr[x] = arr[i]^arr[x]; arr[i] = arr[x]^arr[i]; } } //直接插入排序 for (int i = 1;i<arr.length;i++){ int temp = arr[i]; int j = i; while(j>0 && arr[j-1]>=temp){ arr[j] = arr[j-1]; j--; } arr[j] = temp; } System.out.println(Arrays.toString(arr)); return arr[arr.length - k]; } public static void main(String[] args) { Scanner in = new Scanner(System.in);//键盘输入 System.out.print("请输入该组数据个数:"); int n = in.nextInt(); int[] arr = new int ; System.out.print("请输入数据值:"); for (int i = 0; i < n; i++) { arr[i] = in.nextInt(); } System.out.println("请输入想要获取的是第几个最大值:"); int k = in.nextInt(); long uptime = System.currentTimeMillis(); System.out.println("得第"+k+"个最大值为:"+fun(arr,k)); long endtime = System.currentTimeMillis(); System.out.println("总耗时:" + (endtime - uptime) + "毫秒"); }
}
相关文章推荐
- 最简单之Java实现冒泡排序、选择排序、插入排序、希尔排序、归并排序和快速排序(转载请注明出处)
- 三种简单排序用java实现(选择排序,冒泡排序,插入排序)
- java 几种简单的排序(插入排序,冒泡排序,选择排序)
- Java中的简单排序:冒泡排序,选择排序,插入排序
- java实现冒泡排序,选择排序,插入排序,快速排序(简洁版)及性能测试
- java实现冒泡排序,选择排序,插入排序,快速排序(简洁版)及性能测试
- Java程序语言 冒泡排序、选择排序、插入排序
- 八大排序方法汇总(选择排序,插入排序-简单插入排序、shell排序,交换排序-冒泡排序、快速排序、堆排序,归并排序,计数排序)
- java 实现 冒泡排序、选择排序、插入排序。
- 简单的排序算法——插入排序,选择排序,交换排序(冒泡排序,快速排序)
- java类实现数组的五种排序 冒泡排序、选择排序、插入排序、希尔排序、数组排序
- Java分别实现冒泡排序、插入排序、快速排序、选择排序、交换排序
- Java实现排序(快速排序、冒泡排序、选择排序、基数排序、插入排序)
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- [Java]数组排序-选择排序 冒泡排序 插入排序
- 几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)
- 冒泡排序、选择排序、插入排序(Java实现)
- java基本算法总结(冒泡排序、选择排序、插入排序)
- 简单排序——冒泡排序,选择排序,插入排序,对象排序
- 冒泡排序、插入排序、选择排序的简单了解