程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 冒泡排序-插入排序-快速排序-選擇排序---飛天博客

冒泡排序-插入排序-快速排序-選擇排序---飛天博客

編輯:C++入門知識

冒泡排序-插入排序-快速排序-選擇排序---飛天博客


請看文章:

排序經典集合:插入排序,冒泡排序,快速排序,選擇排序,代碼簡單請看下面的基本介紹和代碼

插入排序:直接插入排序是一種最簡單的排序方法,它的基本操作是將一個記錄插入到一排好序的有序表中 時間復雜度為:O(n^2)

package paixu;
/**
 * 冒泡排序
 * @author 肖華    [email protected] 
 *
 */
public class Charu {
	public static void main(String[] args) {
		int[] arr=new int[]{1,9,5,4,8,7,0,2,3,6};
		for(int i=1;i=0){
//				if(arr[j]>temp){
//					arr[j+1]=arr[j];//往後移動
//					j--;
//				}else{
//					break;//找到這個元素了
//				}
//			}
//				arr[j+1]=temp;
			int j=0;
			for(j=i-1;j>=0;j--){
				if(arr[j]>temp){
					arr[j+1]=arr[j];//往後移動
				}else{
					break;//找到這個元素了
				}
			}//這個元素有可能是第一位
			arr[j+1]=temp;//插入
		}
		print(arr);
		
	}

	public static void print(int[] arr){
		for(int i=0;i

冒泡排序:冒泡排序是將前一個與臨近的一個元素比較,如果前者大於後者則交換順序,在一輪排序之後,最後一個是最大的,第二次倒數第二個最大,一次直到所有的序列都為有順序的數列 時間復雜度為:o(n^2)

package paixu;

/**
 * 冒泡排序
 * @author 肖華    [email protected] 
 *
 */
public class Maopao {
	
	public static void main(String[] args) {
		int[] arr=new int[]{1,9,5,4,8,7,0,2,3,6};
		for(int j=0;jarr[i+1]){
				int temp=arr[i+1];
				arr[i+1]=arr[i];
				arr[i]=temp;
				}
			}
		}
		
		print(arr);
	}
	
	public static void print(int[] arr){
		for(int i=0;i

快速排序:快速排序運用到了分割的思想,通過一趟排序將帶排記錄分割成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分記錄的關鍵字小,然後遞歸對這兩部分繼續分割排序,已達到整個序列有序 時間復雜度為:knln(n) 結合冒泡排序,可以降低至O(log(n));

package paixu;

/**
 * 冒泡排序
 * @author 肖華    [email protected] 
 *
 */
public class Quick {
	
	public static void main(String[] args) {
		int[] arr=new int[]{1,9,5,4,8,7,0,2,3,6};
		qSort(arr, 0, 9);
		print(arr);
		
	}
	
	public static void qSort(int[] arr,int low,int high){
		if(low=key){
				high--;
			}
			//交換順序
			int temp=arr[low];//此時arr[low]==key
			arr[low]=arr[high];
			arr[high]=temp;//此時arr[high]==key
			
			while(low

選擇排序:這個排序比較簡單,也很容易理解,通過n-i+1(i=1,2,..n-1)個記錄中選取關鍵字最小的記錄作為關鍵字,並和第i(1<=i<=n)個記錄交換 時間復雜度為O(n^2)

package paixu;


/**
 * 冒泡排序
 * @author 肖華    [email protected] 
 *
 */
public class Xuanze {

	public static void main(String[] args) {
		int[] arr=new int[]{1,9,5,4,8,7,0,2,3,6};
		for(int i=0;i=arr[j]){//選擇最小的,保留在i位置
					int temp=arr[i];
					arr[i]=arr[j];
					arr[j]=temp;
				}
			}
		}
		print(arr);
		
	}
	
	public static void print(int[] arr){
		for(int i=0;i
以上代碼復制即可運行,寫的很簡單,沒有什麼設計方法,有什麼不懂得可以留言一起探討

轉載之後請注明出處:http://blog.csdn.net/xh199110/article/details/39672835 飛天博客

謝謝


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved