9大常見演算法

2021-08-22 07:28:19 字數 3701 閱讀 4760

一篇穩定和非穩定文章

public

class

sjms ;

sort sort = new insertsort();

sort.sort(nums);

printnums(nums);

nums = new

int;

sort = new shellsort();

sort.sort(nums);

printnums(nums);

nums = new

int;

sort = new selectmiddleinsertsort();

sort.sort(nums);

printnums(nums);

nums = new

int;

sort = new selectsort();

sort.sort(nums);

printnums(nums);

nums = new

int;

sort = new heapsort();

sort.sort(nums);

printnums(nums);

nums = new

int;

sort = new swapsort();

sort.sort(nums);

printnums(nums);

nums = new

int;

sort = new fastsort();

sort.sort(nums);

printnums(nums);

nums = new

int;

sort = new mergesort();

sort.sort(nums);

printnums(nums);

nums = new

int;

sort = new radixsort();

sort.sort(nums);

printnums(nums);

}public

static

void printnums(int nums)

system.out.println("");

}}inte***ce

sort

//插入排序

//直接插入排序

class

insertsort

implements

sort else }}

}private

void swaparray(int nums, int i, int j)

}//希爾排序

class

shellsort

implements

sort else }}

k = k / 2;}}

private

void swaparray(int nums, int i, int j)

}//折半查詢插入排序

class

selectmiddleinsertsort

implements

sort

nums[result] = tmpvalue;}}

private

int selectinsertpo(int nums, int length, int value) else

if (nums[mid] > value) else

if (nums[mid] < value)

}return left;

}}//選擇排序

//簡單選擇排序

class

selectsort

implements

sort

}swaparray(nums, tmp, i);}}

private

void swaparray(int nums, int i, int j)

}//堆排序

class

heapsort

implements

sort

private

void sortheap(int nums, int length)

for (int i = length - 1; i > 0; i--)

}private

void adjustheap(int nums, int i, int length)

if (nums[k] > temp) else

}nums[i] = temp;

}private

void swaparray(int nums, int i, int j)

}//交換排序

//氣泡排序

class

swapsort

implements

sort }}

}private

void swaparray(int nums, int i, int j)

}//快速排序

class

fastsort

implements

sort

public

void quicksort(int nums, int left, int right)

while (i != j)

if (j > i)

while (i < j && nums[i] <= tmp)

if (j > i)

}nums[i] = tmp;

quicksort(nums, left, i - 1);

quicksort(nums, i + 1, right);

}}//歸併排序

class

mergesort

implements

sort

public

void mergesort(int nums, int left, int right)

}public

void merge(int nums, int left, int mid, int right) else

t++;

}while (i <= mid)

while (j <= right)

t = 0;

while (left <= right)

}}//基數排序

class

radixsort

implements

sort

public

void radixsort(int nums, int n, int maxnum)

int k = 0;

for (int b = 0; b < 10; b++)

for (int w = 0; w < count[b]; w++)

count[b] = 0;

}divisor *= 10;}}

public

int getmaxnums(int nums)

}return maxnums;}}

java實現9大排序演算法

排序大的分類可以分為兩種 內排序和外排序。在排序過程中,全部記錄存放在記憶體,則稱為內排序,如果排序過程中需要使用外存,則稱為外排序。一般來說外排序分為兩個步驟 預處理和合併排序。首先,根據可用記憶體的大小,將外存上含有n個紀錄的檔案分成若干長度為t的子檔案 或段 其次,利用內部排序的方法,對每個子...

資料庫設計中的9大常見錯誤

作為資料庫設計人員,當我們負責資料庫專案時,在資料庫設計以及把資料庫部署到生產環境的過程中可能會遇到一些挑戰。其中一些問題不可避免,也無法控制。但是,其中相當一部分可以追溯到資料庫設計本身的質量。我們在初步階段所做的決定會對資料庫最終的工作情況有深遠的影響。如果我們要建一所房子,我們不會聘請一位工程...

資料庫設計中的9大常見錯誤

作為資料庫設計人員,當我們負責資料庫專案時,在資料庫設計以及把資料庫部署到生產環境的過程中可能會遇到一些挑戰。其中一些問題不可避免,也無法控制。但是,其中相當一部分可以追溯到資料庫設計本身的質量。我們在初步階段所做的決定會對資料庫最終的工作情況有深遠的影響。如果我們要建一所房子,我們不會聘請一位工程...