java冒泡排序和快速排序代碼
冒泡排序:
基本思想:在要排序的一組數(shù)中,對當前還未排好序的范圍內(nèi)的全部數(shù),自上而下對相鄰的兩個數(shù)依次進行比較和調(diào)整,讓較大的數(shù)往下沉,較小的往上冒。即:每當兩相鄰的數(shù)比較后發(fā)現(xiàn)它們的排序與排序要求相反時,就將它們互換。
public class BubbleSorted{
public BubbleSorted(){
int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
int temp=0;
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=0;i<a.length;i++)
System.out.println(a[i]);
} }
快速排序:
算法:當數(shù)據(jù)量很大適宜采用該方法。采用二分法查找時,數(shù)據(jù)需是有序不重復的。 基本思想:假設數(shù)據(jù)是按升序排序的,對于給定值 x,從序列的中間位置開始比較,如果當前位置值等于 x,則查找成功;若 x 小于當前位置值,則在數(shù)列的前半段中查找;若 x 大于當前位置值則在數(shù)列的后半段中繼續(xù)查找,直到找到為止。
假設有一個數(shù)組 { 12, 23, 34, 45, 56, 67, 77, 89, 90 },現(xiàn)要求采用二分法找出指定的數(shù)值并將其在數(shù)組的索引返回,如果沒有找到則返回 -1。代碼如下:
package com.test;
public class FindSorted{
public static void main(String[] args) {
int[] arr = new int[] { 12, 23, 34, 45, 56, 67, 77, 89, 90 };
System.out.println(search(arr, 12));
System.out.println(search(arr, 45));
System.out.println(search(arr, 67));
System.out.println(search(arr, 89));
System.out.println(search(arr, 99));
}
public static int search(int[] arr, int key) {
int start = 0;
int end = arr.length - 1;
while (start <= end) {
int middle = (start + end) / 2;
if (key < arr[middle]) {
end = middle - 1;
} else if (key > arr[middle]) {
start = middle + 1;
} else {
return middle;
}
}
return -1;
}
}
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
- java List 排序之冒泡排序?qū)嵗a
- Java 冒泡排序、快速排序?qū)嵗a
- java數(shù)據(jù)結構與算法之冒泡排序詳解
- Java數(shù)據(jù)結構和算法之冒泡排序(動力節(jié)點Java學院整理)
- java冒泡排序簡單實例
- java實現(xiàn)的冒泡排序算法示例
- Java實現(xiàn)冒泡排序算法
- java 數(shù)據(jù)結構 冒泡排序?qū)崿F(xiàn)代碼
- Java實現(xiàn)的各種排序算法(插入排序、選擇排序算法、冒泡排序算法)
- JAVA冒泡排序和二分查找的實現(xiàn)
- Java實現(xiàn)冒泡排序算法及對其的簡單優(yōu)化示例
- Java經(jīng)典算法匯總之冒泡排序
- Java實現(xiàn)冒泡排序與雙向冒泡排序算法的代碼示例
- 詳解Java冒泡排序
相關文章
Spring Cloud分布式定時器之ShedLock的實現(xiàn)
這篇文章主要介紹了Spring Cloud分布式定時器之ShedLock的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
SpringMVC中的HandlerMapping和HandlerAdapter詳解
這篇文章主要介紹了SpringMVC中的HandlerMapping和HandlerAdapter詳解,在Spring MVC中,HandlerMapping(處理器映射器)用于確定請求處理器對象,請求處理器可以是任何對象,只要它們使用了@Controller注解或注解@RequestMapping,需要的朋友可以參考下2023-08-08

