![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
lucky tiger
要一直前进,一直静下心来学习。
展开
-
复杂度https://blog.csdn.net/weixin_41190227/article/details/86600821
https://blog.csdn.net/weixin_41190227/article/details/86600821原创 2020-07-01 16:13:58 · 666 阅读 · 0 评论 -
希尔排序
1、 #include<stdio.h> void shellSort(int R[], int n) { int i, j, d; int tmp; d = n / 2;//设置增量 while (d > 0)//出口 { for (i = d; i < n; i++)//对所有组采用直接插入排序 { tmp = R[i];//对相隔d个为止一组采用直接插入排序原创 2020-07-01 15:54:31 · 110 阅读 · 0 评论 -
堆排序
1、 #include <stdio.h> void swap(int arr[], int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } void heapify(int tree[], int n, int i) { if(i >= n) return;//diguichukopu int c1 = 2*i + 1;//right int c2 = 2*i + 2;//left原创 2020-07-01 11:29:47 · 111 阅读 · 0 评论 -
快速排序
1、 6 1 2 7 9 3 4 5 设置最右边一个为基本元素 i为最左边的元素,j为最右边的元素 j先走j从左往右走直到找到比基本元素小的 i再从右往左走找到比基本元素大的 交换 重复直到相遇 #include <stdio.h> void fast_sort(int left, int right, int arr[]) { //printf("sizeof(arr)=%ld\n",sizeof(arr)); int i,j,temp; if(left >原创 2020-06-05 15:43:45 · 125 阅读 · 0 评论 -
插入排序
1、3 2 6 4 第一个数字当成已经排好序的数组后面的就比较大小 #include <stdio.h> void insert(int arr[], int n) { int key = arr[n]; int i = n; while(arr[i-1] > key) { arr[i] = arr[i-1]; i--; if(i == 0){break;} } arr[i] = key; } void insert_sort(int arr[], int原创 2020-06-04 17:00:22 · 91 阅读 · 0 评论 -
冒泡排序
1、每一轮比较一次大小大的后移 第一轮结束最后一个最大 第二轮就少比较一个所以N-1-I #include <stdio.h> void bubblesort(int arr[], int n) { int i; int temp; int j; for(i=0; i<n-1; i++) { for(j=0; j<n-1-i; j++) { if(arr[j] > arr[j+1]) { temp = arr[j]; ar原创 2020-06-04 16:35:59 · 94 阅读 · 0 评论 -
选择排序
1、基本思想 每次找最大的数放在数组的最后面 select_sort.c #include <stdio.h> int find_max_pos(int arr[], int n) { int max = arr[0]; int pos = 0; int i; for(i=0; i<n-1; i++) { if(arr[i]>max) { pos = i; } } return pos; } void select_sort(int arr[原创 2020-06-04 16:34:05 · 97 阅读 · 0 评论 -
归并排序
#include <iostream> #include <vector> using namespace std; void merge(vector<int> &arr,int L,int mid,int R) { int *help = new int(R-L+1); int p1=L,p2=mid+1,i=0; while(p1<=mid && p2<=R) { help[i++] = arr[p1]>.原创 2020-06-04 10:18:39 · 100 阅读 · 0 评论