欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

java实现排序

时间:2023-08-09


直接插入排序: 将数组分为两个子表 ,前边是有序子表,后边是待排序子表,每次将一个带排序的关键字插入到前边已经排序好的序列之中,直至全部记录插入完成为止;

package Sort;public class InsertSort { //直接插入排序 public static void main(String[] args) { //定义一个数组 int[] arr = {24, 69, 57, 13}; System.out.println("排序前:" + arrayToString(arr)); System.out.println("排序前:" + arrayToString(Insert(arr))); } public static String arrayToString(int[] arr) { //输出列表方法 StringBuilder sb = new StringBuilder(); sb.append("["); for (int i = 0; i < arr.length; i++) { if (i == arr.length - 1) { sb.append(arr[i]); } else { sb.append(arr[i] + ","); } } sb.append("]"); String s = sb.toString(); return s; } public static int[] Insert(int[] arr) { // 直接插入排序 for (int i = 1; i < arr.length; i++) { //从第二个元素开始 int temp = arr[i]; int j; for (j = i; j > 0; j--) { if (arr[j - 1] > temp) { arr[j] = arr[j - 1]; } else break; } arr[j] = temp; } return arr; }}

折半

冒泡排序 : 属于交换排序:从前往后(从后往前)不断与相邻的关键字比较若大于相邻的(小于)则交换,直至一趟循环没有产生交换,即为排序成功;

package Sort;public class MaoPaoSort { //冒泡排序 public static void main(String[] args) { //定义一个数组 int[] arr = {24, 69, 57, 13}; System.out.println("排序前:" + arrayToString(arr)); System.out.println("排序前:" + arrayToString(Bubble(arr))); } public static String arrayToString(int[] arr) { //输出列表方法 StringBuilder sb = new StringBuilder(); sb.append("["); for (int i = 0; i < arr.length; i++) { if (i == arr.length - 1) { sb.append(arr[i]); } else { sb.append(arr[i] + ","); } } sb.append("]"); String s = sb.toString(); return s; } public static int[] Bubble(int[] arr) { //冒泡排序 for (int i = 0; i < arr.length - 1; i++) { boolean falg = false; for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { int q = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = q; falg = true; } } if (falg = false) { break; } } return arr; }}

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。