- public static void exe2() {
- /**
- * 选择排序 (不稳定排序算法)
- * 每一趟从待排序数组中选出最小或最大的元素, 顺序放在已排好序的数列后面
- */
- int num[] = {
- 3, 5, 2, 12, 7, 9
- };
- int minIndex = 0;// 用于记录每次比较的最小值的下标
- for (int i = 0; i <num.length - 1; i++) {
- // 控制比较轮数
- minIndex = i;// 每轮假设一个最小值下标
- for (int j = i + 1; j < num.length; j++) {
- if (num[minIndex]> num[j]) {
- minIndex = j;
- }
- }
- if (minIndex != i) {
- // 交换位置
- num[minIndex] = num[minIndex] + num[i];
- num[i] = num[minIndex] - num[i];
- num[minIndex] = num[minIndex] - num[i];
- }
- }
- for (int n : num) {
- // 输出结果
- System.out.println(n);
- }
- }
- public static void exe3() {
- /**
- * 插入排序
- */
- int num[]={
- 4,7,3,12,5,9
- };
- for(int i=1;i<num.length;i++){
- // 控制比较轮数
- int temp=num[i]; // 记录操作数
- int j=0;
- for(j=i-1;j>=0;j--){
- if(num[j]>temp){
- num[j+1]=num[j];
- }else{
- break;
- }
- }
- if(num[j+1]!=temp){
- num[j+1]=temp;
- }
- }
- for(int n:num){
- // 输出结果
- System.out.println(n);
- }
- }
- }
来源: https://www.cnblogs.com/lsjyjq/p/11251998.html