氣泡排序概述
氣泡排序**
氣泡排序**實現
/*
氣泡排序:
一種排序的方式,對要進行排序的資料中相鄰的資料進行兩兩比較,將較大的資料放在後面,
依次對所有的資料進行操作,直至所有資料按要求完成排序
*/public
class
test1
; system.out.
println
("排序前:"
+ arrays.
tostring
(arr));
// 氣泡排序
// 外層迴圈控制比較輪數
for(
int i =
0; i < arr.length -
1; i++)}
} system.out.
println
("排序後:"
+ arrays.
tostring
(arr));
}}
選擇排序概述
選擇排序**
選擇排序**實現
public
class
test
; system.out.
println
("排序前:"
+ arrays.
tostring
(arr));
// 選擇排序
// 外層迴圈控制比較的輪數
for(
int i =
0; i < arr.length -
1; i++)}
} system.out.
println
("********************====");
// 外層迴圈控制比較的輪數
for(
int i =
0; i < arr.length -
1; i++)}
// 如果最小值的索引不是選中的位置索引,就交換
if(minindex != i)
} system.out.
println
("排序後:"
+ arrays.
tostring
(arr));
}}
普通查詢和二分查詢
普通查詢
原理:遍歷陣列,獲取每乙個元素,然後判斷當前遍歷的元素是否和要查詢的元素相同,如果相同就返回該元素的索引。如果沒有找到,就返回乙個負數作為標識(一般是-1)
二分查詢
原理: 每一次都去獲取陣列的中間索引所對應的元素,然後和要查詢的元素進行比對,如果相同就返回索引;
如果不相同,就比較中間元素和要查詢的元素的值;
如果中間元素的值大於要查詢的元素,說明要查詢的元素在左側,那麼就從左側按照上述思想繼續查詢(忽略右側資料);
如果中間元素的值小於要查詢的元素,說明要查詢的元素在右側,那麼就從右側按照上述思想繼續查詢(忽略左側資料);
二分查詢對陣列是有要求的,陣列必須已經排好序
二分查詢**
假設有乙個給定有序陣列(10,14,21,38,45,47,53,81,87,99),要查詢50出現的索引
則查詢過程如下圖所示:
二分查詢**實現
public
static
void
main
(string[
] args)
;int index =
binaryserach
(arr,38)
; system.out.
println
(index);}
/** * 二分查詢方法
* @param arr 查詢的目標陣列
* @param number 查詢的目標值
* @return 找到的索引,如果沒有找到返回-1
*/public
static
intbinaryserach
(int
arr,
int number)
else
if(number < arr[mid]
)else
if(number > arr[mid])}
return-1
;//如果陣列中有這個元素,則返回
}
常見的排序演算法
一 氣泡排序 include include void swap int a,int b void bubblesort int arr,int size int main void bubblesort a,5 for int i 0 i 5 i cout 二 選擇排序 void selectio...
常見的排序演算法
需要包含的標頭檔案 include stdafx.h include include include 氣泡排序是穩定排序 時間複雜度 o n 2 void swap int a,int b void bubblesort int a,int n void printnum int a,int n a...
常見的排序演算法
排序演算法是最基礎,也是最簡單的演算法思想,因為應用場景多,書寫簡單,所以應用較為普遍,所以在面試和考試的時候,都會涉及到排序演算法,雖然排序演算法種類很多,但是只要理解了思想,然後靈活運用,那麼就不難記憶.排序演算法兩個需要記憶和理解的點就是 演算法思想和時間複雜度.下面我們就介紹和分析一下常見的...