찾다
백엔드 개발C#.Net 튜토리얼C 언어에서 빠른 정렬을 사용하여 정렬하는 방법

빠른 정렬 방법 정리 방법: 먼저 정렬할 때마다 기준점을 설정하고 기준점보다 작거나 같은 숫자를 모두 기준점 왼쪽에 놓은 다음 그보다 크거나 같은 숫자를 모두 넣습니다. 기준점 오른쪽에 있는 기준점과 같습니다. 마지막으로 모든 교환은 매번 인접한 숫자 사이에서만 교환할 수 있는 버블 정렬과 같지 않으며 교환 거리가 훨씬 더 길어집니다.

C 언어에서 빠른 정렬을 사용하여 정렬하는 방법

빠른 정렬의 정렬 방법:

알고리즘 아이디어:

(1) 레코드 시퀀스에서 기본 요소(키라고 함)로 정렬할 레코드(보통 첫 번째 레코드)를 선택합니다. )key=arr[left], 그리고 두 개의 변수를 설정합니다. left는 배열의 가장 왼쪽 부분을 가리키고 right는 데이터의 가장 오른쪽 부분을 가리킵니다.

C 언어에서 빠른 정렬을 사용하여 정렬하는 방법

(2) Key는 먼저 arr[right]와 비교됩니다. arr[right]key, 그러면 right--, right--만 비교한 다음 arr[right]

C 언어에서 빠른 정렬을 사용하여 정렬하는 방법

(3) 오른쪽에 arr[right]key이면 arr[right]=arr[left]이고, arr[left]

C 언어에서 빠른 정렬을 사용하여 정렬하는 방법

(4) 그런 다음 오른쪽으로 이동하여 위 단계를 반복합니다.

C 언어에서 빠른 정렬을 사용하여 정렬하는 방법

(5) 마지막으로 {23 58 13 10 57 62} 65 {106 78 95 85}를 얻은 다음 왼쪽 하위 배열을 비교합니다. 및 오른쪽 하위 배열 동일한 작업을 수행합니다. 마지막으로 정렬된 시퀀스가 ​​얻어집니다.

C 언어에서 빠른 정렬을 사용하여 정렬하는 방법

알고리즘 구현:

public class QuickSort {
 
   public static void quickSort(int [] arr,int left,int right) {
      int pivot=0;
      if(left<right) {
         pivot=partition(arr,left,right);
         quickSort(arr,left,pivot-1);
         quickSort(arr,pivot+1,right);
      }
   }
 
   private static int partition(int[] arr,int left,int right) {
      int key=arr[left];
      while(left<right) {
         while(left<right && arr[right]>=key) {
            right--;
         }
         arr[left]=arr[right];
         while(left<right && arr[left]<=key) {
            left++;
         }
         arr[right]=arr[left];
      }
      arr[left]=key;
      return left;
   }
  
   public static void main(String[] args) {
      int arr[]= {65,58,95,10,57,62,13,106,78,23,85};
      System.out.println("排序前:"+Arrays.toString(arr));
      quickSort(arr,0,arr.length-1);
      System.out.println("排序后:"+Arrays.toString(arr));
   }
}
排序前:[65, 58, 95, 10, 57, 62, 13, 106, 78, 23, 85]
排序后:[10, 13, 23, 57, 58, 62, 65, 78, 85, 95, 106]

관련 학습 권장 사항: C 비디오 튜토리얼

위 내용은 C 언어에서 빠른 정렬을 사용하여 정렬하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
用Python怎么实现快速排序用Python怎么实现快速排序Dec 18, 2023 pm 03:37 PM

用Python实现快速排序的方法:1、定义一个名为quick_sort的函数,使用递归的方法来实现快速排序;2、检查数组的长度,如果长度小于等于1,则直接返回数组,否则,选择数组中的第一个元素作为枢纽元素(pivot),然后将数组分成比枢纽元素小和比枢纽元素大的两个子数组;3、将这两个子数组和枢纽元素连接起来,形成排序好的数组即可。

Java实现的快速排序算法及其效率评估Java实现的快速排序算法及其效率评估Feb 18, 2024 pm 03:38 PM

快速排序的Java实现及其性能分析快速排序(QuickSort)是一种很常用且高效的排序算法,它是一种分治法(DivideandConquer)的思想。该算法通过将一个数组分成两个子数组,然后对这两个子数组分别进行排序,最终将整个数组变为有序序列。在处理大规模数据时,快速排序表现出了非常出色的性能。快速排序的实现采用递归的方式,基本思路如下:选择一个基

Java快速排序技巧及注意事项Java快速排序技巧及注意事项Feb 25, 2024 pm 10:24 PM

掌握Java快速排序的关键技巧和注意事项快速排序(QuickSort)是一种常用的排序算法,其核心思想是通过选择一个基准元素,将待排序序列分割成独立的两部分,其中一部分的所有元素均小于基准元素,另一部分的所有元素均大于基准元素,然后对这两部分分别进行递归排序,最终得到有序序列。虽然快速排序在平均情况下的时间复杂度为O(nlogn),但在最坏情况下会退化为O

优化与实现原理:Java中的快速排序优化与实现原理:Java中的快速排序Feb 20, 2024 pm 01:24 PM

Java快速排序函数的实现原理与优化快速排序是一种高效的排序算法,它的实现思想是通过分治法将一个大问题分割成多个小问题,通过递归解决子问题,最终获得整体的解。在快速排序中,我们需要选择一个基准元素,将数组分为两部分,一部分小于基准元素,一部分大于基准元素。然后对这两部分再次进行快速排序,直到每个子问题只有一个元素。最后将所有子问题的解合并起来,即可获得数组的

java如何快速排序函数java如何快速排序函数Jan 18, 2024 pm 05:26 PM

快速排序方法:1、创建一个Java示例文件;2、通过quickSort方法实现快速排序算法;3、选择数组中的一个元素作为主元(pivot),并将数组分为两个子数组,一个包含比主元小的元素,另一个包含比主元大的元素,然后对这两个子数组递归地应用快速排序算法;4、在main方法中对数组进行了排序并输出结果即可。

如何使用java实现快速排序算法如何使用java实现快速排序算法Sep 19, 2023 am 11:28 AM

如何使用Java实现快速排序算法快速排序(QuickSort)是一种常用且高效的排序算法。它的基本思想是采用分治法(DivideandConquer)的策略,通过每次选取一个元素作为基准值,将待排序数组划分为两部分,一部分小于基准值,一部分大于基准值,然后分别对两部分进行递归排序,最终实现整个数组的排序。下面我们将详细介绍如何使用Java语言实现快速排

在PHP中使用数组函数进行快速排序在PHP中使用数组函数进行快速排序Jun 16, 2023 am 08:54 AM

PHP是一种非常流行的编程语言,它广泛用于Web开发。在PHP中,数组是一种非常常见的数据类型,也是一种非常强大的数据结构。正因为如此,PHP提供了许多数组函数来帮助开发人员处理和操作数组。其中包括快速排序函数,可以帮助我们快速对数组进行排序。快速排序是一种常见的排序算法,它的基本思想是通过比较和交换来将一个数组分成两个子数组,一个比另一个小,然后递归地对每

如何用Python实现快速排序算法?如何用Python实现快速排序算法?Sep 19, 2023 am 09:55 AM

如何用Python实现快速排序算法?快速排序是一种常见而高效的排序算法,它能够在平均情况下以O(nlogn)的时间复杂度对一个包含n个元素的列表进行排序。本文将介绍如何使用Python编写快速排序算法的代码示例。快速排序的基本思想是选取一个元素作为基准(通常选择列表第一个元素),将列表分割成两个子序列,使得左子序列的所有元素都小于基准,右子序列的所有元素

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전