标签:ice scanf tps col amp alt can ret 左右
1.快速排序
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用。快速排序是一种既不浪费空间又可以快一点的排序算法。
#include <stdio.h> #include <stdlib.h> void sort(int a[],int n) { int i,j,t; for(j=0; j<n; j++) for(i=0; i<n-1-j; i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } int main() { /*int a[]= {3,9,2,1,4,5,6}; int i; sort(a,7); for(i=0; i<7; i++) { printf("%d ",a[i]); }*/ int a[10010]; int i,n; printf("输入一个整数:\n"); scanf("%d", &n); printf("输入待排序的数组:\n"); for(i=0; i<n; i++) { scanf("%d",&a[i]); } printf("\n"); sort(a,n); printf("排序后的数组:\n"); for(i=0; i<n; i++) { if(i==0) printf("%d",a[i]); else printf(" %d",a[i]); } printf("\n"); }
void quicksort(int *a,int low,int high) { int i=low, j=high; if(i<j) return; int temp=a[low]; while(i<j) { while(a[j]>=temp&&i<j) j--; a[i]=a[j]; while(a[i]<=temp&&i<j) i++; a[j]=a[i]; } a[i]=temp; quicksprt(a,low,i-1); quicksort(a,i+1,high); }
var quickSort = function(arr) { if (arr.length <= 1) { return arr; } var pivotIndex = Math.floor(arr.length / 2); //基准位置(理论上可任意选取) var pivot = arr.splice(pivotIndex, 1)[0]; //基准数 var left = []; var right = []; for (var i = 0; i < arr.length; i++){ if (arr[i] < pivot) { left.push(arr[i]); } else { right.push(arr[i]); } } return quickSort(left).concat([pivot], quickSort(right)); //链接左数组、基准数构成的数组、右数组 };
选择排序 https://segmentfault.com/a/1190000009366805
希尔排序 https://segmentfault.com/a/1190000009461832
标签:ice scanf tps col amp alt can ret 左右
原文地址:https://www.cnblogs.com/SallyShan/p/11624402.html