【LeeCode】排序算法

网友投稿 828 2022-10-28

【LeeCode】排序算法

【LeeCode】排序算法

选择排序

import java.util.*;/** * 选择排序 */public class Main { public static void main(String[] args) { int[] arr = {12, 2, 33, 1, 21, 3, 11, 3}; System.out.println("初始值" + Arrays.toString(arr)); xuanze(arr); } private static void xuanze(int[] arr) { for(int i = 0; i < arr.length; i++){ for(int j = i; j < arr.length; j++){ if(arr[i] > arr[j]){ int tmp = arr[j]; arr[j] = arr[i]; arr[i] = tmp; } } } System.out.println("选择:" + Arrays.toString(arr)); }}

冒泡排序

import java.util.*;/** * 冒泡排序 */public class Main { public static void main(String[] args) { int[] arr = {12, 2, 33, 1, 21, 3, 11, 3}; System.out.println("初始值" + Arrays.toString(arr)); maopao(arr); } private static void maopao(int[] arr) { for(int i = 0; i < arr.length; i++){ for(int j = 0; j < arr.length - 1; j++){ if(arr[j] > arr[j+1]){ int tmp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tmp; } } } System.out.println("冒泡:" + Arrays.toString(arr)); }}

快速排序

import java.util.*;/** * 快速排序 */public class Main { public static void main(String[] args) { int[] arr = {12, 2, 33, 1, 21, 3, 11, 3}; kuaisu(arr, 0, arr.length-1); System.out.println(Arrays.toString(arr)); } private static void kuaisu(int[] arr, int low, int high) { int i,j,tmp; if(low > high){ return; } i = low; j = high; tmp = arr[low]; while (i < j ){ while (tmp <= arr[j] && i < j ){ j--; } while (tmp >= arr[i] && i < j ){ i++; } if( i < j ) { int x = arr[i]; int y = arr[j]; arr[i] = y; arr[j] = x; } } // i == j , 交换第一轮的基准值到它应该的位置 arr[low] = arr[i]; arr[i] = tmp; kuaisu(arr, low, j-1); kuaisu(arr, j+1, high); }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:密码保护小工具, 完整iOS小项目
下一篇:Euboea一种超快速和微小的编程语言,将JIT编译为机器码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~