陣列 簡單排序

2021-08-14 04:50:13 字數 1377 閱讀 3418

氣泡排序

依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:首先比較第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 選擇排序的效率問題 選擇...