氣泡排序
依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複第一趟步驟,直至全部排序完成。
package ch02;
public
class bubblesort }}
}}
選擇排序:(交換的次數比氣泡排序少)
簡單選擇排序的基本思想:給定陣列:int arr=;第1趟排序,在待排序資料arr[1]~arr[n]中選出最小的資料,將它與arrr[1]交換;第2趟,在待排序資料arr[2]~arr[n]中選出最小的資料,將它與r[2]交換;以此類推,第i趟在待排序資料arr[i]~arr[n]中選出最小的資料,將它與r[i]交換,直到全部排序完成。
package ch02;
public
class selectionsort
}//在內層迴圈結束,也就是找到本輪迴圈的最小的數以後,再進行交換
tmp = arr[i];
arr[i] = arr[k];
arr[k] = tmp;}}
}
插入排序
在將元素插入到有序佇列中,要將這個元素與有序佇列的元素依次比較,如果小於有序佇列的某個元素,將其插入到該元素的前面,否則不做操作。依次比較完畢,沒有比其大的,就將其放在有序佇列的末尾。
如果輸入陣列已經是排好序的話,插入排序出現最佳情況,其執行時間是輸入規模的乙個線性函式。如果輸入陣列是逆序排列的,將出現最壞情況。平均情況與最壞情況一樣,其時間代價是θ(n2)。
程式設計對乙個陣列進行插入排序也是同樣道理,但和插入撲克牌有一點不同,不可能在兩個相鄰的儲存單元之間再插入乙個單元,因此要將插入點之後的資料依次往後移動乙個單元。
package ch02;
public
class insertsort
arr[j] = tmp;}}
public
static
void
main(string args)
system.out.print("]");
system.out.println();
sort(arr);
system.out.print("[");
for(long num : arr)
system.out.print("]");
system.out.println();
}}
排序 簡單排序
氣泡排序 函式名 bubble sort 功能 實現公升序排序 引數 帶排序的陣列,陣列的長度 返回值 為空 描述 時間複雜度為o n 2 輔助空間為o 1 有一種變形的氣泡排序 雞尾酒排序,它是雙向的氣泡排序,時間複雜度也為o n 2 void bubble sort int bubble,int...
排序 簡單排序
一 氣泡排序 源 void bubble sort int array,int size array if flag 0 break 二 插入排序 原理 從第二個元素開始向前比較判斷,如果比前乙個元素小,則前乙個元素往後移動一位,直到第乙個元素或者前面條件不成立,將該元素插入當前位置。源 void ...
簡單排序 選擇排序
package cnic.cn.impl public class selectionsort change array out swap value array out array max array max change output for int i 0 i 9 i 選擇排序的效率問題 選擇...