排序演算法1

2021-10-04 14:09:43 字數 1331 閱讀 1057

氣泡排序,時間複雜度o(n2),空間複雜度為o(1)

class solution }}

return nums;

}}

選擇排序,時間複雜度為o(n2),空間複雜度為o(1)

class solution 

}int tmp = nums[i];

nums[i] = nums[min];

nums[min] = tmp;

}return nums;

}}

class solution else}}

return nums;

}}

插入排序,時間複雜度為o(n2),空間複雜度為o(1)

class solution else}}

return nums;

}}

快速排序,時間複雜度o(nlogn),空間複雜度為o(1)

class solution 

public void qort(int left, int right, int nums)

int standard = nums[left];

int i = left + 1, j= 0;

for (; i <= right - j;)else

}qort(left, right - j - 1, nums);

qort(right - j + 1, right, nums);

}}

歸併排序,時間複雜度為o(nlogn)

class solution 

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

merge(left, mid, (left+mid)/2, nums);

merge(mid + 1, right, (right+mid + 1)/2, nums);

int tmp = new int[right-left+1];

int leftindex = left;

int midindex = mid + 1;

int index = 0;

while(leftindex <= mid && midindex <= right)else

}while (leftindex <= mid)

while (midindex <= right)

for (int i = 0 ; i < index; i++)

}}

排序 排序演算法1

所謂氣泡排序就是,一組資料,以遞增的順序來說明,從第乙個數data 0 開始,依次和後面的資料比較大小,如果data 0 大於當前位置上的數就和這個數交換位置並繼續和後面的數相比,如果遇到比自己大的數了,就不交換 下一次開始的位置是data 1 然後依次往後推。void myswap int num...

排序演算法 1 選擇排序演算法

這篇部落格分為兩個部分 選擇排序演算法基本思想 實現與解析 由於這個排序演算法比較簡單,因此這篇博文就不做過多解釋了 一.選擇排序演算法基本思想 1 選擇排序 小到大排序 1.遍歷所有未排序的元素 找到最小的那個元素 2.將這個元素與未排序序列的第乙個元素交換位置 3.當剩下乙個元素時 排序結束 o...

排序演算法 1

二 高階排序演算法 高階排序演算法中我們將只介紹這一種,同時也是目前我所知道 我看過的資料中 的最快的。它的工作看起來仍然象乙個二叉樹。首先我們選擇乙個中間值middle程式中我們使用陣列中間值,然後 把比它小的放在左邊,大的放在右邊 具體的實現是從兩邊找,找到一對後交換 然後對兩邊分別使 用這個過...