排序法_51CTO博客
这里我们介绍一些常用的排序方法,排序是一个程序员的基本功,所谓排序就是对一组数据,按照某个顺序排列的过程。 充效率看 冒泡排序<选择排序<插入排序 排序分两大类: 内部排序 交换式排序 冒泡 基本思想: 冒泡排序 冒泡排序 案例: 12345678910111213141516171
转载 2017-11-10 11:34:00
299阅读
2评论
目录​​二分插入​​​​直接插入​​​​带哨兵的直接排序​​​​希尔(Shell)排序​​​​冒泡​​​​选择排序​​​​快速排序​​​​堆排序​​​​归并排序​​​​各种排序的时间复杂度​​二分插入void HalfInsertSort(int a[], int len){ int i, j,temp; int low, high, mid; for (i
转载 2012-10-16 22:36:00
118阅读
2评论
一.希尔(Shell)排序#includevoid sort(int v[],int n){ intgap,i,j,temp; for(gap=n/2;gap>0;gap /= 2) { for(i=gap;i { for(j=i-gap;(j>=...
原创 2021-09-29 11:31:25
169阅读
冒泡排序: 选择排序
转载 2013-10-14 09:45:00
253阅读
2评论
冒泡排序 是数组等线性排列的数字从大到小或从小到大排序。 以从小到大排序为例。 数据 11, 35, 39, 30, 7, 36, 22, 13, 1, 38, 26, 18, 12, 5, 45, 32, 6, 21, 42, 23 使用 数组 int [] array 存储数字。 过程 (数组
原创 2021-04-23 15:20:44
1092阅读
1.排序思想先拿出最小的,与排在第一个交换位置(有可能是它自己),之后在剩下的里面再选择最小的,与排在第二个交换位置,以此类推。2.代码实现public class SelectionSort_GenericClass {     private SelectionSort_GenericClass(){};     //思想: 循环不变量 arr[i....n)未排序, arr[0..i)已经
转载 2021-03-14 17:24:50
201阅读
2评论
本文详细叙述和实现了快速排序算法,冒泡排序 选择排序 插入排序比较简单,原理在这里不再详述,直接用代码进行了实现。快速排序(quicksort)是目前所公认最快的排序方法之一(视解题的对象而定),
转载 2013-06-27 19:25:00
284阅读
2评论
定义一个partition()方法,找到数组中第一个元素的正确位置,返回索引p,即p前面的元素都比它小,p后面的元素都比它大 然后再递归调用快速排序,对左右两个分区间进行同样的操作,最后完成排序 import java.util.Arrays; public class Algorithm { pu ...
转载 2021-10-23 11:25:00
107阅读
2评论
<script> var arr = [1, 4, 2, 9, 3, 0]; function xuanze(array) { if (Array.isArray(array)) { if (array.length == 1 || array.length == 0) { return array; } for (var i = 0; i < array.lengt
原创 2022-11-18 00:06:36
68阅读
一、快速排序算法(Quick Sort)简介快速排序(Quick sort),使用分治(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。它是一种 分而治之思想 在排序算法上的典型应用。本质上来看,快速排序是对冒泡排序算法的一种改进,是在冒泡排序基础上的 递归分治。快速排序算法的优点在于 快,而且效率高 !它是处理大数据最快的排序算法之一了
日常操作中常见的排序方法很多,比如有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。一、冒泡排序  一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。  走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到
转载 2023-09-19 07:39:04
32阅读
publicclass shellSort { publicshellSort(){ int a[]={1,54,6,3,78,34,12,45,56,100}; double d1=a.length; ...
转载 2015-05-07 21:11:00
191阅读
2评论
好记性不如烂笔头
原创 2022-08-28 00:00:21
61阅读
/* 冒泡排序 */#includeint main(){    int n,i,j,t,a[100];    scanf("%d",&n);    for(i=0;i    scanf("%d",&a[i]);    for(i=0;i     for(j=i+1;j     if(a[i]>a[j])     { t=a[i];a[i]=a
原创 2022-08-30 20:08:19
74阅读
冒泡排序算法的原理如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,
转载 2022-10-20 14:00:40
34阅读
这个排序方法说实话,我到现在也还是很不理解,说起来好像很简单,但是一写就发蒙,所以只好一遍又一遍的写,可还是不甚理解,想想也罢,不理解了,留下一段代码,将来用的时候直接拿来主义就好了            if(left>=right){ return; } int i=left; int j=rig
原创 2023-01-30 19:17:12
72阅读
冒泡就是每次一个大数沉底,或者一个小数冒泡
原创 2009-09-22 13:25:31
532阅读
用起泡对10个数排序(由小到大) 思路:将相邻的两个数比较,将大的调到后头。 #include <stdio.h> void main() { int i,j,t; int a[10]; printf("input 10 numbers:\n"); for(i=0;i<10;++i)  scanf("%d",&
原创 2012-09-07 09:33:02
598阅读
#include<stdio.h>int main(){int book[1001],i,j,t,n;for(i=0;i<=1000;i++)//桶的个数book[i]=0;//先初始化为0scanf("%d",&n);//输入带排序的数字个数for(i=1;i<=n;i++)//记录每个数字出现的次数{scanf("%d",&t);book[t]++;}f
原创 2014-04-19 12:51:37
575阅读
2点赞
选择排序选择排序是指在一个无序的数组中,按照从小到大或者从大到小的顺序排列。这种排序算法 速度并不是太快,也不是很慢,用大O表示:O(n^2)举个栗子假设有 [5,9,6,4,3,4,1,0,45,85]这些数组,那么用选择排序从小到大的顺序排列,首先先把最小的直,挑出来,放到另外一个新的数组中,这个新的数组就是排序好后返回的数组。依次排序就完成了排序好的数组。代码...
原创 2021-07-14 16:55:29
124阅读
  • 1
  • 2
  • 3
  • 4
  • 5