Java三种常见的排序算法:冒泡,选择,插入

本文介绍并实现了三种基本排序算法:冒泡排序、选择排序和插入排序。通过具体的Java代码示例展示了如何对整数数组进行排序,并提供了运行效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java代码 复制代码
  1. /**  
  2.  *   
  3.  * @author Administrator:阿福(trygf521@126.com)  
  4.  *  
  5.  */  
  6. public class BubbleSorting {   
  7.     public static void main(String args[]) {   
  8.            
  9.         //-------------------------冒泡排序   
  10.         // 最初的数组.   
  11.         int[] list = { 15423897612 };   
  12.   
  13.         // 显示最初的数组.   
  14.         System.out.println("测试:冒泡排序——最初数组:");   
  15.         for (int i = 0; i < list.length; i++) {   
  16.             System.out.print("  " + list[i]);   
  17.         }   
  18.         bubbleSort(list);   
  19.         System.out.println();   
  20.   
  21.         // 输出排序后的数组.   
  22.         System.out.println("冒泡排序后的数组是:");   
  23.         for (int i = 0; i < list.length; i++){   
  24.             System.out.print("  " + list[i]);   
  25.         }   
  26.         System.out.println();System.out.println();System.out.println();   
  27.            
  28.         //------------------------选择排序   
  29.            
  30.         // 显示最初的数组.   
  31.         int[] lists = { 15423897612 };   
  32.         System.out.println("测试:选择排序——最初数组:");   
  33.         for (int i = 0; i < list.length; i++) {   
  34.             System.out.print("  " + lists[i]);   
  35.         }   
  36.         Sectc(lists);   
  37.         System.out.println();   
  38.   
  39.         // 输出排序后的数组.   
  40.         System.out.println("选择排序后的数组是:");   
  41.         for (int i = 0; i < list.length; i++){   
  42.             System.out.print("  " + lists[i]);   
  43.         }   
  44.         System.out.println();System.out.println();System.out.println();   
  45.            
  46.         //------------------------插入排序   
  47.         // 显示最初的数组.   
  48.         Comparable[] b = {6,3,1,8,22,34,2,12,15,7,99,11};     
  49.         System.out.println("测试:插入排序——最初数组:");   
  50.         for (int i = 0; i < b.length; i++) {   
  51.             System.out.print("  " + b[i]);   
  52.         }   
  53.          insertSort(b);     
  54.         System.out.println();   
  55.   
  56.         // 输出排序后的数组.   
  57.         System.out.println("选择排序后的数组是:");   
  58.         for (int i = 0; i < b.length; i++){   
  59.             System.out.print("  " + b[i]);   
  60.         }   
  61.         System.out.println();System.out.println();System.out.println();   
  62.        
  63.             
  64.                    
  65.                     
  66.     }   
  67.   
  68.     /**  
  69.      * 选择排序  
  70.      *   
  71.      * @param list  
  72.      */  
  73.     static void Sectc(int[] list) {   
  74.         for (int i = 0; i < list.length; i++) {   
  75.             for (int j = 1 + i; j < list.length; j++)   
  76.                 if (list[i] < list[j]) {   
  77.                     int temp;   
  78.                     temp = list[j];   
  79.                     list[j] = list[i];   
  80.                     list[i] = temp;   
  81.   
  82.                 }   
  83.   
  84.         }   
  85.   
  86.     }   
  87.     /**  
  88.      * 冒泡排序  
  89.      * @param list  
  90.      */  
  91.     static void bubbleSort(int[] list) {   
  92.         for (int i = 0; i < list.length; i++) {   
  93.             boolean flag = true;   
  94.             int temp = 0;   
  95.   
  96.             for (int j = 1; j < list.length - i; j++)   
  97.                 if (list[j - 1] < list[j]) {   
  98.                     temp = list[j - 1];   
  99.                     list[j - 1] = list[j];   
  100.                     list[j] = temp;   
  101.                     flag = false;   
  102.                 }   
  103.   
  104.             if (flag)   
  105.                 break;   
  106.         }   
  107.   
  108.     }   
  109.   
  110.     /**  
  111.      * 插入排序  
  112.      * @param data  
  113.      */  
  114.     public static void insertSort(Comparable[] data) {   
  115.         int j;   
  116.         for (int p = 1; p < data.length; p++) {   
  117.             Comparable key = data[p];   
  118.             for (j = p; j > 0 && (key.compareTo(data[j - 1]) < 0); j--)   
  119.                 data[j] = data[j - 1];   
  120.             data[j] = key;   
  121.         }   
  122.     }   
  123. }  
/**
 * 
 * @author Administrator:阿福(trygf521@126.com)
 *
 */
public class BubbleSorting {
	public static void main(String args[]) {
		
		//-------------------------冒泡排序
		// 最初的数组.
		int[] list = { 1, 5, 4, 2, 3, 8, 9, 7, 6, 12 };

		// 显示最初的数组.
		System.out.println("测试:冒泡排序——最初数组:");
		for (int i = 0; i < list.length; i++) {
			System.out.print("  " + list[i]);
		}
		bubbleSort(list);
		System.out.println();

		// 输出排序后的数组.
		System.out.println("冒泡排序后的数组是:");
		for (int i = 0; i < list.length; i++){
			System.out.print("  " + list[i]);
		}
		System.out.println();System.out.println();System.out.println();
		
		//------------------------选择排序
		
		// 显示最初的数组.
		int[] lists = { 1, 5, 4, 2, 3, 8, 9, 7, 6, 12 };
		System.out.println("测试:选择排序——最初数组:");
		for (int i = 0; i < list.length; i++) {
			System.out.print("  " + lists[i]);
		}
		Sectc(lists);
		System.out.println();

		// 输出排序后的数组.
		System.out.println("选择排序后的数组是:");
		for (int i = 0; i < list.length; i++){
			System.out.print("  " + lists[i]);
		}
		System.out.println();System.out.println();System.out.println();
		
		//------------------------插入排序
		// 显示最初的数组.
		Comparable[] b = {6,3,1,8,22,34,2,12,15,7,99,11};  
		System.out.println("测试:插入排序——最初数组:");
		for (int i = 0; i < b.length; i++) {
			System.out.print("  " + b[i]);
		}
		 insertSort(b);  
		System.out.println();

		// 输出排序后的数组.
		System.out.println("选择排序后的数组是:");
		for (int i = 0; i < b.length; i++){
			System.out.print("  " + b[i]);
		}
		System.out.println();System.out.println();System.out.println();
	
		 
		        
		         
	}

	/**
	 * 选择排序
	 * 
	 * @param list
	 */
	static void Sectc(int[] list) {
		for (int i = 0; i < list.length; i++) {
			for (int j = 1 + i; j < list.length; j++)
				if (list[i] < list[j]) {
					int temp;
					temp = list[j];
					list[j] = list[i];
					list[i] = temp;

				}

		}

	}
	/**
	 * 冒泡排序
	 * @param list
	 */
	static void bubbleSort(int[] list) {
		for (int i = 0; i < list.length; i++) {
			boolean flag = true;
			int temp = 0;

			for (int j = 1; j < list.length - i; j++)
				if (list[j - 1] < list[j]) {
					temp = list[j - 1];
					list[j - 1] = list[j];
					list[j] = temp;
					flag = false;
				}

			if (flag)
				break;
		}

	}

	/**
	 * 插入排序
	 * @param data
	 */
	public static void insertSort(Comparable[] data) {
		int j;
		for (int p = 1; p < data.length; p++) {
			Comparable key = data[p];
			for (j = p; j > 0 && (key.compareTo(data[j - 1]) < 0); j--)
				data[j] = data[j - 1];
			data[j] = key;
		}
	}
}

 

 

运行效果:

  • 大小: 34.7 KB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值